cs_Eric25
Messages postés175Date d'inscriptionmardi 19 octobre 2004StatutMembreDernière intervention26 juin 2006
-
12 janv. 2005 à 13:00
cs_Eric25
Messages postés175Date d'inscriptionmardi 19 octobre 2004StatutMembreDernière intervention26 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
mrdep1978
Messages postés402Date d'inscriptionjeudi 25 novembre 2004StatutMembreDernière intervention 7 juin 20097 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% & ".
cs_Eric25
Messages postés175Date d'inscriptionmardi 19 octobre 2004StatutMembreDernière intervention26 juin 20063 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.