Saisie semi-automatique avec combobox et accées à bdd. NE FONCTIONNE PAS!

jekifvb6 Messages postés 156 Date d'inscription lundi 13 novembre 2000 Statut Membre Dernière intervention 18 septembre 2006 - 11 juil. 2005 à 16:07
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 - 13 juil. 2005 à 20:41
Bonjour/Bonsoir.
J'ai un problème qui commence à me prendre la tête.
Je veux réaliser une saisie semi-automatique (comme dans la barre d'url de firefox par ex).
Je possède une bdd avec une table "Adresse" et un champ "nom_patient"
Lorsque l'utilisateur tape une lettre, la ComboBox doit se remplir avec la liste des "nom_patient" commencant par cette lettre. Et si il tape une seconde lettre, elle doit se juxtaposer à la première, la ComboBox se vider pour se reremplir avec les "nom_patient" dont les deux premières lettres coincident avec celle qui ont étées saisies.

Mon (ébauche de) code:

Private Sub Combo1_KeyPress(KeyAscii As Integer)
sql1 = "select * from Adresse where nom_patient like '" & Combo1.Text & "*'"
Set rs1 = db.OpenRecordset(sql1, dbOpenDynaset)
While Not rs1.EOF
Combo1.AddItem rs1.Fields("nom_patient")
rs1.MoveNext
Wend
rs1.Close

End Sub

Le premier problème vient que ma requête SQL donne un recordset qui contient TOUS les champs de la table! J'ai bien fouillé partout pour la syntaxe et je n'arrive pas à selectionnner les champs commencant par la lettre A par exemple.
Pourtant quand j'execute directement sur ma bdd la requete:
select * from Adresse where nom_patient like 'a*'
j'obtiens le résultat escompté. Je n'y comprend plus rien, où est mon erreur svp?

Pour ceux qui auront eu le courage de lire jusque là, j'ai un deuxième souci:
je n'arrive pas à saisir plus d'une lettre, la frappe suivante au clavier vient remplacer la précedente...

J'espere avoir été clair. Je remercie d'avance ceux qui voudront bien me donner un coup de pouce. A bientôt (ah oui, c'est urgent.. ;-)

guillaume

5 réponses

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
11 juil. 2005 à 21:21
Salut,
Et si tu mets ton code dans le change au lieu du keypress, ce n'est pas mieux ?
J'explique, dans le keypress, le Combo1.Text n'a pas encore pris en compte la lettre tapée.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
jekifvb6 Messages postés 156 Date d'inscription lundi 13 novembre 2000 Statut Membre Dernière intervention 18 septembre 2006
12 juil. 2005 à 10:45
Merci pour le conseil, je travaille maintenant avec la Sub Combo1_Change.

Mais je ne m'explique toujours pas le problème de la requête SQL, quelq'un peut-il m'aider?

A bientôt.



guillaume
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
12 juil. 2005 à 20:31
A mon avis, la requete n'est pas en cause.
Essaie de mettre un combo1.clear avant le While Not rs1.EOF. Cela aura pour effet de vider la combo avant de re-remplir.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
jekifvb6 Messages postés 156 Date d'inscription lundi 13 novembre 2000 Statut Membre Dernière intervention 18 septembre 2006
13 juil. 2005 à 10:46
"A mon avis, la requete n'est pas en cause."

Tu veux dire que la requ^te est bien formulée? Dans ce cas, je ne suis
que plus desesperé! Car le recordset qui lui est lié prend tous les
champs de ma table et non pas les champs commencant par la ou les
lettres tapées...

Merci quand-même pour ton aide. Si quelqu'un est de passage sur ce post
et qu'il a une peitite idée sur la question, n'hésite pas, je répondrai.

guillaume.
0

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

Posez votre question
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
13 juil. 2005 à 20:41
Aie, dernier essai, met un point d'arrêt sur sql1 = "select...... et vérifie la valeur de Combo1.Text.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0