URGENT.....Liste déroulantes (= combobox) liées

cs_thebox Messages postés 24 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 15 juillet 2004 - 30 juin 2004 à 10:13
carnez Messages postés 120 Date d'inscription jeudi 31 octobre 2002 Statut Membre Derniè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.

Merci d'avance pour votre aide

The BOX

7 réponses

carnez Messages postés 120 Date d'inscription jeudi 31 octobre 2002 Statut Membre Dernière intervention 2 août 2004
30 juin 2004 à 16:48
bonjour,

ne fallait-il pas écrire :

[nom ss form2].filter = "[chp2]='" & Me![liste2].Column(0) & "'" & " and " & "[chp1]='" & [nom form]![liste1] & "'"

Colibri
cs_thebox Messages postés 24 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 15 juillet 2004
1 juil. 2004 à 11:28
Ben non ca marche pas non plus
toujours la même erreur!!!!

Rrrrrrhhhh... Ca m'énerve!!!!

Merci quand meme

UNe autre idée
carnez Messages postés 120 Date d'inscription jeudi 31 octobre 2002 Statut Membre Derniè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.

Colibri
cs_thebox Messages postés 24 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 15 juillet 2004
5 juil. 2004 à 11:58
Je crois que j'ai un problème d'incompatibilité de type. Mais je sais pas comment y remédier.

T'aurais pas une idée par hasard

The BOX

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
carnez Messages postés 120 Date d'inscription jeudi 31 octobre 2002 Statut Membre Dernière intervention 2 août 2004
5 juil. 2004 à 14:19
ben pour en avoir une, encore faudrait-il que k'aie des valeurs !!

si liste1 fonctionne, ça vient de liste2

quelle est la valeur de [nom ss form1]![liste2].Column(0) ?
Tu devrais avoir de l'alph; tu n'aurais pas du numérique ?

Colibri
cs_thebox Messages postés 24 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 15 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...

The BOX
carnez Messages postés 120 Date d'inscription jeudi 31 octobre 2002 Statut Membre Derniè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] & "'"

Colibri
Rejoignez-nous