Requete Like "Contient" en VBA

JCDussDuss Messages postés 24 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 20 novembre 2008 - 19 oct. 2004 à 12:56
miss_vb Messages postés 10 Date d'inscription jeudi 4 août 2005 Statut Membre Dernière intervention 14 septembre 2006 - 9 août 2005 à 14:11
Bonjour,

J'essaye de faire une requete Like en VBA et je me noids dans les guillemets, et apostrophes....
J'ai une textBox ou je saisie une partie d'un nom d'abonné, je valide, et je souhaite que dans une liste box apparaissent tous les abonnés dont le Nom contient ma saisie, au début, a la fin ou au milieu du nom.

mon critere de requete est :
"...WHERE ((TableAbonnés.nom) Like '" & "*" & varSaisie & "*" & " ');"

varSaisie est le contenu de ma textBox

et ca marche pas, il me trouve jamais rien !!!

Si qq'un voit ce qui cloche, je suis preneur, merci d'avance

JCDussDuss

11 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
19 oct. 2004 à 13:04
Salut,

Je crois que c est pas * qu il faut utiliser avec LIKE mais %
Si tu met % au debut Et a la fin il cherchera Varsaisie ou que ce soit dans le champ NOM
Alors essaie avec celle ci:

... WHERE NOM LIKE '%" & Varsaisie & "%');"


@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
0
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012
19 oct. 2004 à 13:24
Je crois bien qu'avec Access97 c'est * et pas %, histoire d'améliorer la compatibilité des requêtes... Je ne suis plus très sûr.

En tous cas jrivet a raison.

++
Moustachu
0
tchoo83 Messages postés 42 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 27 octobre 2004
19 oct. 2004 à 16:57
ouais, mais javoue, avec les guillemets c'est assez chaud...

Disons que le mot que tu recherche est Recherche tu peux faire comme ça, ça fais un genre de moteur de recherche !

pourcent = "%"
resultat = pourcent & recherche & pourcent
resultat = resultat

'Ouverture Recordset
rst.Open "select * from SITE NOM_SITE like """ & resultat & """ ", cnn ', adOpenKeyset, adLockOptimistic"

et voila !
0
tchoo83 Messages postés 42 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 27 octobre 2004
19 oct. 2004 à 17:00
Pardon je change juste la requete que tu dois utiliser avec ce que je t'ai donné !

rst.Open "select * from TABLE Where CHAMP like """ & resultat & """ ", cnn , adOpenKeyset, adLockOptimistic"
0

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

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
19 oct. 2004 à 17:01
SAlut
-> tchoo83

Mais je crois que si tu fais .... """ & resultat & """" tu recherche "Recherche" (ecrit tel quel dans la base de donnees) le separateur de chaine de caratere en SQL c est 'Champ'

Enfin me semble t il ...

Ah et Resultat = Resultat (j vois ce que cette ligne apporte)
@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
0
tchoo83 Messages postés 42 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 27 octobre 2004
19 oct. 2004 à 17:19
Oui mais recherche, peux etre une variable, qui vient d'un champ texte !

Dim recherche as string
dim pourcent as string
dim resultat as string

Recherche = text1.text
pourcent = "%"
resultat = pourcent & recherche & pourcent

rst.Open "select * from TABLE Where CHAMP like """ & resultat & """ ", cnn , adOpenKeyset, adLockOptimistic"

voila et comme ça, la requete vas chercher ttes les occurences, où elle retrouve les caracteres stockés dans la variable recherche sur le champ que tu recherche !

J'utilise cela, pr mon moteur de recherche, sur une de mes applis !

(je crois que j'avait mis resultat = resultat, pr mettre a jour ma variable, je crois que mon VB buggai )

@+
0
tchoo83 Messages postés 42 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 27 octobre 2004
19 oct. 2004 à 17:22
Enfin, jai pas tres bien compris ton histoire de séparateur

rst.Open "select * from TATABLE Where TONCHAMP like """ & resultat & """ ", cnn , adOpenKeyset, adLockOptimistic"

par exple

rst.Open "select * from Personnes Where NOM like """ & resultat & """ ", cnn , adOpenKeyset, adLockOptimistic"

par rapport a ce que j'ai fait juste au dessus, tu tapes IRAC ou IRA par exple dans ton text1.text...et il pourra te trouver CHIRAC si il est bien inscrit dans la base de données imaginée !

ça marche c'est certifié :-p
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
19 oct. 2004 à 17:32
Salut,

Le truc du separateur que je te disait c est que en SQL tu teste des chaine de caractere de la maniere suivante:
IF NomChamp 'Bonjour' et nom pas IF Nomchamp "Bonjour"

Sinon la requete foire (de mon cote teste aussi)
@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
0
tchoo83 Messages postés 42 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 27 octobre 2004
19 oct. 2004 à 17:40
Enfin de ttes manieres, dans le cas de la demande de ce topic, je penses que le plus malin et de faire comme j'ai fait, càd implementer les "%" avant la requete....

Enfin, bref...on attends de voir si ça marche pour lui !

:-p Bon Codage, Bon Courage !!! See ya 8-)
0
JCDussDuss Messages postés 24 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 20 novembre 2008
21 oct. 2004 à 12:11
Merci a tous pour vos réponses, effectivement ca marche beaucoup mieux avec le % qu'avec les *, voila ce qui marche chez moi :

...WHERE (TableAbonnés.nom LIKE '%" & varRecherche & "%')

et ca me trouve varRecherche aussi bien au début, au milieu ou a la fin du champ scruté.

Merci encore

JCDussDuss
0
miss_vb Messages postés 10 Date d'inscription jeudi 4 août 2005 Statut Membre Dernière intervention 14 septembre 2006
9 août 2005 à 14:11
salut tt le monde
j'ai essayé tt ce que vs avez proposé,mais ça ne marche malheureusement pas!
aidez moi svp
merci

miss_vb
0
Rejoignez-nous