Syntaxe d'une requête utilisant la fonction LIKE

Résolu
cs_Eric25 Messages postés 175 Date d'inscription mardi 19 octobre 2004 Statut Membre Dernière intervention 26 juin 2006 - 12 janv. 2005 à 13:00
cs_Eric25 Messages postés 175 Date d'inscription mardi 19 octobre 2004 Statut Membre Dernière intervention 26 juin 2006 - 12 janv. 2005 à 16:10
Voici le code que j'utilise pour alimenter et rafraichir un combo.
J'ai placer l'appel de cette procédure sur l'évènement form load et sur l'évènement keypress du combo pour effeectuer une restriction sur l'affichage en fonction de la saisi.
Je n'ai jamais utilisé LIKE en vb6 et la syntaxe de ma requête ne lui plait apparemment pas :

Public Sub CharTouCbSup(Debut As String, Cb As ComboBox)
'Debut representant le contenu du Combo : ce que l'utilisateur commence à saisir
If Rs_Sup.State = adStateOpen Then
Rs_Sup.Close
End If
'Je recherche le contenu de la table UTILISATEUR
Rs_Sup.Open "select * from [SUPPLEMENT] where [Lib_Sup] like '" & Debut% & "'", Cn, adOpenDynamic, adLockOptimistic
'nettoyage du contenu
Cb.Clear
'Tant que je ne suis pas arrivé à la fin de la liste
While Rs_Sup.EOF = False
'J'ajoute les champs trouvés au contenu du combo un par un
Cb.AddItem Rs_Sup.Fields("Lib_Sup").Value
'Je passe au suivant
Rs_Sup.MoveNext
Wend
Rs_Sup.Close
End Sub

Pouvez-vous me dire ce qui cloche...

Merci d'avance

4 réponses

mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 7
12 janv. 2005 à 13:28
Ca devrait aller mieux comme ça :
Rs_Sup.Open "select * from [SUPPLEMENT] where [Lib_Sup] like '" & Debut & "%'", Cn, adOpenDynamic, adLockOptimistic

En fait, il n'y a pas de syntaxe SQL lié à VB6. On construit juste la requête SQL sous forme d'une chaine de caractère classique. C'est pourquoi il hurle sur un " & Debut% & ".
3
cs_Eric25 Messages postés 175 Date d'inscription mardi 19 octobre 2004 Statut Membre Dernière intervention 26 juin 2006 3
12 janv. 2005 à 13:23
Ah, j'oubliais, la base de données est sous SQL Serveur 2000.
0
cs_Eric25 Messages postés 175 Date d'inscription mardi 19 octobre 2004 Statut Membre Dernière intervention 26 juin 2006 3
12 janv. 2005 à 13:34
Merci pour cette briante explication...
0
cs_Eric25 Messages postés 175 Date d'inscription mardi 19 octobre 2004 Statut Membre Dernière intervention 26 juin 2006 3
12 janv. 2005 à 16:10
La requête marche mais l'alimentation a du mal a s'effectuer.
J'appelle la procédure sur l'évènement keypress du combo et donc je pensais que la recherche prendrait en compte la lettre qui vient d'être tappée mais ce n'est pas le cas, j'ai toujours une lettre de retard. De plus, il y a une restriction : je ne peux plus saisir qu'une seule lettre dans mon combo. Je ne comprend pas pourquoi...
Quelqu'un peut-il me dire comment résoudre ce problème.

Merci d'avance
0
Rejoignez-nous