Lier une requete SQL avec une valeur d'une TextBox sous Access2000

Signaler
Messages postés
109
Date d'inscription
mardi 13 avril 2004
Statut
Membre
Dernière intervention
4 juin 2008
-
Messages postés
109
Date d'inscription
mardi 13 avril 2004
Statut
Membre
Dernière intervention
4 juin 2008
-
J'ai un sous formulaire qui a comme source une requete SQL du type :

SELECT NoClient, NomClient, machin, truc...

FROM Client

WHERE NomClient In ([Formulaire]![frm_Client]![txtListeClients])



Le probleme c'est que ça fonctionne pas.

NomClient est de type Texte (50).



Dans l'éditeur de requetes, je tapes :

SELECT NoClient, NomClient, machin, truc...


FROM Client


WHERE NomClient In ("poulet","Velo")



et ça fonctionne super bien (en QBE, faut mettre un ';' à la place de
',')... par contre, dans ma TextBox 'txtLàisteClients', il y a la liste
des NomClients c'est à dire qu'il contient ceci :

"poulet","Velo"

Ça ne marche pas ni ce qui suit d'ailleurs :

"poulet";"Velo"

'poulet','Velo'

'poulet';'Velo'



Une idée???

2 réponses

Messages postés
278
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
13 avril 2013
2
Normalement sous VB quand tu crée ta requette SQL en String, il faut que tes valeurs soient entourées de '
exemple
"('" & TextBox1.text & "','" & textbox2.Text & "')
C'est pas très lisible pour faire la distinction entre les " et les '.
Faut bien faire gaffe à la syntaxe !!!!!
Messages postés
109
Date d'inscription
mardi 13 avril 2004
Statut
Membre
Dernière intervention
4 juin 2008

La requete n'est pas gérée par le code mais elle est par défaut en "Source" du sous-formulaire.
Car je mets à jour se formulaire dès que je clique sur le (ou les) nom(s) qui se trouvent dans une liste... ça me permet d'avoir les détails des Clients sur lesquels je clique. Et en fait, mon txtListeClient me permet de faire formater la liste des clients pour que la requete s'exécute.

Grace à cette solution, j'ai juste à faire un frm_Client.requery pour mettre à jour les données.

Sinon, y a une solution, c'est de refaire le rowsource à chaque clic... mais fiou... ça prends plus de temps, non?