cs_thebox
Messages postés24Date d'inscriptionlundi 14 juin 2004StatutMembreDernière intervention15 juillet 2004
-
30 juin 2004 à 10:13
carnez
Messages postés120Date d'inscriptionjeudi 31 octobre 2002StatutMembreDernière intervention 2 août 2004
-
5 juil. 2004 à 14:30
Bonjour à tous,
J'essaie de lier plusieurs listes déroulantes entre elles. Ma liste 1 se trouve dans un form principale, ma liste 2 dans un sous form 1 appartenant au form principal et ma liste se trouve dans un sous form 2 appartenant au sous form 1.
Voici le code de l'AfterUpDate de ma liste 1:
Private Sub cmbSat_AfterUpdate()
[nom ss form]!liste2.Requery
[nom ss form].filter = "[chp1]='" & Me![liste1] & "'"
[nom ss form].FilterOn = True
Me.Recalc
End Sub
Jusque là tout marche normalement. Ensuite il y a le code de l'AfterUpDate de ma liste 2:
Private Sub cmbfreq_AfterUpdate()
[nom ss form2]![liste3].Requery
[nom ss form2].filter = "[chp2]='" & [nom ss form1]![liste2].Column(0) & "'" & " and " & "[chp1]='" & [nom form]![liste1] & "'"
[nom ss form2].FilterOn = True
End Sub
Et c'est à cet endroit ci que ca beugue: une fois que ma liste 2 a été mise à jour et que je veux sélectionner une autre valeur dans cette liste 2, ca m'affiche une erreur:
Run Time error '2001'
You canceled the previous operation
et ca me surligne cette ligne ci:
[nom ss form2].filter = "[chp2]='" & [nom ss form1]![liste2].Column(0) & "'" & " and " & "[chp1]='" & [nom form]![liste1] & "'"
Et je ne sais pas du tout d'où cette erreur provient. C'est peut être une question idiote mais ne travaillant sur VB et Access depuis peu, je bloque.
carnez
Messages postés120Date d'inscriptionjeudi 31 octobre 2002StatutMembreDernière intervention 2 août 2004 1 juil. 2004 à 14:50
bon, alors dans ce cas, il faut procéder par ordre et douter de tout :
1- affiche dans un msgbox la valeur de :
[nom ss form1]![liste2].Column(0)
[nom form]![liste1]
2- si c'est correct, mets les valeurs en dur dans ton filtre
3- teste ton filtre avec les valeus en dur
s'il fonctionne, c'est que tu as un souci d'incompatibilité de type
si ça ne fonctionne pas et toujours ce p...... de message, c'est sur la conception du filtre lui même, et là je ne vois pas.
cs_thebox
Messages postés24Date d'inscriptionlundi 14 juin 2004StatutMembreDernière intervention15 juillet 2004 5 juil. 2004 à 14:26
Si justement c'est du numérique cette valeur. Et si j'ai bien compris il me faut du text. Y a t il un moyen de convertir une donnée numérique en texte alors? ou une autre solution...
carnez
Messages postés120Date d'inscriptionjeudi 31 octobre 2002StatutMembreDernière intervention 2 août 2004 5 juil. 2004 à 14:30
ça y est ! on a trouvé
c'est simple :
si le résultat de ta combobox liste2 est numérique, supprime les simples côtes dans "[chp2]='" & [nom ss form1]![liste2].Column(0) & "'" & " and " & "[chp1]='" & [nom form]![liste1] & "'"
tu dois écrire :
"[chp2]= " & [nom ss form1]![liste2].Column(0) & " and " & "[chp1]='" & [nom form]![liste1] & "'"