Syntaxe d'une requête utilisant la fonction LIKE [Résolu]

Signaler
Messages postés
175
Date d'inscription
mardi 19 octobre 2004
Statut
Membre
Dernière intervention
26 juin 2006
-
Messages postés
175
Date d'inscription
mardi 19 octobre 2004
Statut
Membre
Dernière intervention
26 juin 2006
-
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

Messages postés
402
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
7 juin 2009
5
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 179 internautes nous ont dit merci ce mois-ci

Messages postés
175
Date d'inscription
mardi 19 octobre 2004
Statut
Membre
Dernière intervention
26 juin 2006
3
Ah, j'oubliais, la base de données est sous SQL Serveur 2000.
Messages postés
175
Date d'inscription
mardi 19 octobre 2004
Statut
Membre
Dernière intervention
26 juin 2006
3
Merci pour cette briante explication...
Messages postés
175
Date d'inscription
mardi 19 octobre 2004
Statut
Membre
Dernière intervention
26 juin 2006
3
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