1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| Private Sub ReactuSelection()
On Error GoTo GestionErreur
Dim sSql As String, Rs As Recordset, i As Integer, ctl As Control
'Actualiser la sélection
DoCmd.SetWarnings False
DoCmd.RunSQL ("DELETE tFiltreRecapOffres.ArticleNom FROM tFiltreRecapOffres;")
DoCmd.RunSQL ("INSERT INTO tFiltreRecapOffres ( ArticleNom, FournisseurNom, PrixFournisseur ) SELECT tArticles.ArticleNom, tFournisseurs.FournisseurNom, tPrixFournisseurs.PrixFournisseur FROM tFournisseurs INNER JOIN (tSousCategories INNER JOIN (tCategories INNER JOIN (tArticles INNER JOIN tPrixFournisseurs ON tArticles.idArticle = tPrixFournisseurs.PrixFournisseurIdArticle) ON tCategories.idCategorie = tArticles.ArticleIdCategorie) ON tSousCategories.idSousCategorie = tArticles.ArticleIdSousCategorie) ON tFournisseurs.idFournisseur = tPrixFournisseurs.PrixFournisseurIdFournisseur WHERE (((tCategories.Categorie) Like ""*"" & [Forms]![fRecapOffres]![zdlFiltreCategorie] & ""*"") AND ((tSousCategories.SousCategorie) Like ""*"" & [Forms]![fRecapOffres]![zdlFiltreSousCategorie] & ""*""));")
DoCmd.SetWarnings True
Me.RecordSource = "TRANSFORM First([tFiltreRecapOffres].[PrixFournisseur]) AS PremierDePrixFournisseur SELECT [tFiltreRecapOffres].[ArticleNom] AS Article FROM tFiltreRecapOffres GROUP BY [tFiltreRecapOffres].[ArticleNom] PIVOT [tFiltreRecapOffres].[FournisseurNom]; "
'Adapter les contrôles du formulaire à raison des fournisseurs sélectionnés
'Rendre non visible tous les contrôles relatifs aux fournisseurs
For Each ctl In Me.Controls
If Left(ctl.Name, 14) = "zdtFournisseur" Or Left(ctl.Name, 2) = "et" _
Then ctl.Visible = False
Next ctl
Set Rs = Me.Recordset
For i = 1 To 16 'dans sa forme actuelle 16 fournisseurs différents maximum par sélection
Me("etFournisseur0" & i).Caption = Rs(i).Name
Me("zdtFournisseur0" & i).ControlSource = Rs(i).Name
Me("etFournisseur0" & i).Visible = True
Me("zdtFournisseur0" & i).Visible = True
Next i
Exit Sub
GestionErreur:
Select Case Err.Number
Case 3265 'fournisseur excédentaire
Exit Sub
Case Else
MsgBox "Erreur dans Form_Open " & Err.Number & " " & Err.Description
End Select
End Sub |
Partager