Liste déroulante en cascade

Résolu/Fermé
meeks Messages postés 61 Date d'inscription mardi 19 juillet 2016 Statut Membre Dernière intervention 20 septembre 2017 - 5 août 2016 à 10:37
 Utilisateur anonyme - 6 août 2016 à 02:09
Bonjour,

J'ai un nouveau problème !

Je vous explique : j'ai donc 2 listes déroulantes liées entre elles (la 2nde dépend du résultat de la première), jusque là tout va bien, ça marche.

La 2ème liste déroulante affiche des résultats sur 2 zones de textes différents.

Jusque là, ça marche aussi, le problème est que quand je change la valeur de la 1ère liste déroulante, le résultat de la 2ème liste correspond, le problème est que je n'ai pas les résultats qui s'affichent dans les zones de textes.

Le but est de pouvoir trouver à partir de la 1ère liste déroulante (qui recense les fournisseurs) les articles correspondants (2ème liste) et la 1ère zone de texte affiche la désignation du produit et la 2ème zone de texte le prix.

Je me demande donc pourquoi les zones de texte ne "suivent" pas les résultats de la 2ème liste déroulante...

Merci d'avance de votre aide.

Private Sub cmbArticle_AfterUpdate()
txtDesignation = cmbArticle.Column(2)
txtPrix = cmbArticle.Column(3)
Me.txtDesignation.Requery
Me.txtPrix.Requery

End Sub

Private Sub cmbFournisseur_AfterUpdate()
Dim lngid_four As Long
Dim sql As String
If Not IsNumeric(Me!cmbFournisseur) Then Exit Sub
lngid_four = Me!cmbFournisseur
sql = "SELECT id_art, Code_article, id_fournisseur FROM Article WHERE id_fournisseur =" & lngid_four & " "
cmbArticle.RowSource = sql
cmbArticle.Enabled = True
cmbArticle.SetFocus
cmbArticle.Dropdown
Me.cmbArticle.Requery
Me.txtDesignation.Requery
Me.txtPrix.Requery
End Sub

Private Sub txtDesignation_AfterUpdate()
Me.txtPrix.Requery
End Sub

A priori, mes requery ne servent à rien...



3 réponses

Utilisateur anonyme
5 août 2016 à 19:01
Salut,

au lieu de mettre ton code sur l'évènement after_update, mets le donc sur l'évènement change().

A+
0
Utilisateur anonyme
5 août 2016 à 19:37
Re,

et au fait, pourquoi passes tu par vba ?

Au lieu de faire
Private Sub cmbArticle_AfterUpdate()
txtDesignation = cmbArticle.Column(2)
txtPrix = cmbArticle.Column(3)
Me.txtDesignation.Requery
Me.txtPrix.Requery

pourquoi ne pas mettre dans la source des 2 champs :
pour le 1er : = me.cmbArticle.Column(2)
et pour le 2nd : = cmbArticle.Column(3)

??
0
meeks Messages postés 61 Date d'inscription mardi 19 juillet 2016 Statut Membre Dernière intervention 20 septembre 2017 3
5 août 2016 à 21:20
Salut,

C'est bien ce que j'ai fait...sans succès...

J'avais lu un tuto sur le sujet...

Mais c'est ce que j'ai fait...concernant ton 2eme message et ca marche
0
Utilisateur anonyme
5 août 2016 à 21:22
Re, résolu ???
0
meeks Messages postés 61 Date d'inscription mardi 19 juillet 2016 Statut Membre Dernière intervention 20 septembre 2017 3
5 août 2016 à 22:29
Oui résolu, j'ai pas le réflexe sorry !

Merci à toi pour la 1000éme fois !
0
Utilisateur anonyme
6 août 2016 à 02:09
lol !

Si souci, je ne serais pas là ces prochains jours. Tu as mon mail !

A+
0