Voici une solution (que j'ai testée et qui fonctionne).
1. Tu aménages la liste déroulante de façon à y inclure tes champs "Tournées" (cette liste va chercher son contenu dans la table T_ComTour, comme tu l'as indiqué dans ton 7° post).
Donc, dans les propriétés de la liste :
Format -> nbre colonnes : 12
largeur colonnes : 2,545cm;1cm;0cm;0cm;0cm;0cm;0cm;0cm;0cm;0cm;0cm;0cm
(J'ai défini la taille des colonnes "Tournées" sur 0cm pour qu'on ne les voit pas, mais si tu veux, tu les mets sur 1 et élargis la taille de la liste déroulante pour que tout apparaisse)
Données -> Contenu :
SELECT T_ComTour.Communes, T_ComTour.CP, T_ComTour.TournéeUne, T_ComTour.TournéeDeux, T_ComTour.TournéeTrois, T_ComTour.TournéeQuatre, T_ComTour.TournéeDimUne, T_ComTour.TournéeDimDeux, T_ComTour.TournéeDimTrois, T_ComTour.TournéeGarde, T_ComTour.PetiteTournée, T_ComTour.VisiteCabinet FROM T_ComTour ORDER BY T_ComTour.Communes;
Colonne liée : 0
Evénement -> Après mise à jour : procédure événementielle
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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| Private Sub SelectCom_AfterUpdate()
If [SelectCom].[Column](2) = "TournéeUne" Then
T1.Visible = True
Else
T1.Visible = False
End If
If [SelectCom].[Column](3) = "TournéeDeux" Then
T2.Visible = True
Else
T2.Visible = False
End If
If [SelectCom].[Column](4) = "TournéeTrois" Then
T3.Visible = True
Else
T3.Visible = False
End If
If [SelectCom].[Column](5) = "TournéeQuatre" Then
T4.Visible = True
Else
T4.Visible = False
End If
If [SelectCom].[Column](6) = "TournéeDimUne" Then
T5.Visible = True
Else
T5.Visible = False
End If
If [SelectCom].[Column](7) = "TournéeDimDeux" Then
T6.Visible = True
Else
T6.Visible = False
End If
If [SelectCom].[Column](8) = "TournéeDimTrois" Then
T7.Visible = True
Else
T7.Visible = False
End If
If [SelectCom].[Column](9) = "TournéeGarde" Then
T8.Visible = True
Else
T8.Visible = False
End If
If [SelectCom].[Column](10) = "PetiteTournée" Then
T9.Visible = True
Else
T9.Visible = False
End If
If [SelectCom].[Column](11) = "VisiteCabinet" Then
T10.Visible = True
Else
T10.Visible = False
End If
End Sub |
J'ai nommé T1, T2, ... T10 tes cases à cocher dont je ne connais pas le nom dans le formulaire. Tu dois donc les remplacer dans ce code par les noms de tes cases. Et vérifie que je n'ai pas fait d'erreur dans les noms de tables, champs, etc...
Attention à ceci : dans la liste déroulante, la colonne des communes porte le numéro 0, la colonne du CP porte le numéro 1 (c'est une convention d'Access, la première colonne porte toujours le numéro 0), c'est pourquoi la première condition, qui concerne la première tournée, porte dans le code le numéro 2.
Ainsi, quand tu choisis une commune, les tournées concernées sont les seules affichées, et chaque fois que tu modifieras le contenu de tes tournées (càd le contenu de T_ComTour), le code restera fonctionnel, puisque le contenu de la liste déroulante sera automatiquement à jour.
Voilà. Si tu as des questions, reviens les poser.
Bon travail!
Partager