Bonsoir,
J'aimerai mettre au point deux listes déroulantes en cascade, j'ai vu sur le forum un sujet concernant ce type de liste.
Je ne comprend rien !! Désolé
Voici le sujet:
Imaginons que nous ayons les zones de liste lstPays et lstVilles qui contiennent respectivement une liste de pays et une liste de villes.
Bien évidemment, lorsque nous sélectionnons un pays nous voulons que seules les villes appartenantes à ce pays n'apparaissent dans lstVille.
Nous supposons que ces deux zones de liste sont basées sur les tables TPays et TVille, et qu'elles sont dans un formulaire que nous appellerons F_Geographie.
Une fois les deux zones de liste basées sur les deux tables, nous modifierons la source de données de lstVille :
Propriétés
onglet Données
Contenu :
Select TVille.ID, TVille.Nom From TVille Where TVilles.IDPays = Forms!F_Geographie.lstPays
Où ID est l'identifiant de la ville, Nom son nom et IDPays la clé étrangère contenant l'identifiant du pays auquel appartient la ville.
Et comme vous l'aurez compris, Forms!F_Geographie.lstPays fait référence à la zone de liste lstPays appartenant au formulaire F_Geographie.
Il vous reste alors à rafraîchir les données de la zone de liste lstVille lorsqu'un nouveau pays est sélectionné :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub lstPays_Change() Me.lstVille.Requery End Sub
Et le tour est joué !
Boof !
Nous mettons Select etc etc...uniquement dans la propriété d'une seule liste ?
Et l'autre ?
Seulement ce code VBA suffit ?
Je n'y arrive pas ??
Mes deux listes sont en relation de un-à-plusieurs et avec l'intégrité référentielle !! c'est bien ça ??
Comment faire ?
Bien cordialement
Partager