Se connecter avec
S'enregistrer | Connectez-vous

[Access] Afficher contenu liste deroulante

Dernière réponse : dans Programmation

Bonjour à tous,
Voila je débute sur Access.
J'ai une base de donnée avec un formulaire principal qui sert d'interface pour les utilisateurs, sur ce formulaire j'ai 2 liste deroulantes qui correspondent a la region du client et la 2eme a son departement. le departement depend de la region ( ex : Si je saisi PACA en region, je n'aurais que les departements se rattachant a cette region).
Le problème est que lorsque je navigue entre les différents clients, les regions sont bien affiché, mais pas les départements, j'ai une liste deroulante vide alors que dans la table le numero du departement à bien été enregistré.

Comment affiché ceci?

Merci d'avance
Lassé par la pub ? Créez un compte

Voila ce que j'ai :

SELECT Iddep, dep, IDregion FROM Tabledep WHERE IDregion=22 ORDER BY dep;

pour info : dans ma table " Tabledep" j'ai l'identifiant d'un département, le libelé du departement, et l'identifiant de la region auquel le departement se rattache. le 22 correspond a la region du 1er client.

Salut, Rodillo85

Avec une requête de ce type, tu n'auras jamais que les département de la région 22. Si tu veux que cela soit dynamique, il faut changer le contenu de la liste (propriété "RowSource") par programme:

Private Sub ListeRegion_AfterUpdate()
Me.Controls("ListeDepartement").RowSource = "SELECT Iddep, dep, IDregion FROM Tabledep WHERE IDregion=" & Me.Controls("ListeRegion") & " ORDER BY dep"
Me.Controls("ListeDepartement").Requery
End Sub

Autre solution: utiliser une requête qui fasse référence à la liste déroulante des régions.

SELECT Iddep, dep, IDregion FROM Tabledep WHERE IDregion=Forms('TonForm').Controls('ListeRegion') ORDER BY dep

Dans ce cas, il faut quand même conserver une partie de code pour faire la mise à jour de la liste:

Private Sub ListeRegion_AfterUpdate()
Me.Controls("ListeDepartement").Requery
End Sub

A adapter avec le nom réel de tes listes et formulaires, bien sûr;)

Bonne continuation
Lassé par la pub ? Créez un compte
Tom's guide dans le monde