[VB6] Requète SQL (LIKE)

Requète SQL (LIKE) [VB6] - VB/VBA/VBS - Programmation

Marsh Posté le 05-01-2005 à 11:45:29    

Salut à tous,
 
J'ai un problème qui me résiste depuis des semaines...  
J'en deviens chèvre  :pt1cable:  
 
Ma petite application VB6 doit servir à interroger une base ACCESS contenant N tables avec des clefs primaires, des champs pour les jointures... etc... rien que du classique.
Ma petite appli permet à l'utilisateur ne comprenant rien au SQL de construire sa requète en fonction des champs qu'il renseigne.
Puis il clique sur un bouton "Va y mon gars", et la moulinette se lance.
 
La variable contenant la requète SQL
La connexion
Récupération des données dans un Recordset
Chargement d'une ListView à partir du Recordset
Affichage du résultat pour l'utilisateur tout content !
 
Ca, c'est la théorie.
Dans la pratique, c'est un peu différent.
Une requete avec "=" fonctionne parfaitement :
"SELECT toto FROM Table1 WHERE (Champ1 = ""Valeur"" );"
 
Impécable.
Mais pour le like, rien à faire.
"SELECT toto FROM Table1 WHERE (Champ1 Like ""*Valeur*"" );"
Rien à faire. La requète ne plante pas, mais ne ramene aucune sélection (alors qu'elle le dvrait).
 
Plus fort :
Je prend ce code SQL, je le copie dans une requète directement dans ACCESS, et tout se passe bien. J'obtient le bon résultat.
Le pbe peut (peut etre) venir du caractère *.
Reconnu dans ACCESS, mais pas dans VB6 qui ne l'interprète pas correctement.  
 
Merci de me donner votre avis et vos idées pour m'en sortir.
 
Laurent
 

Reply

Marsh Posté le 05-01-2005 à 11:45:29   

Reply

Marsh Posté le 05-01-2005 à 12:01:29    

1) % à la place de *
2) Je te conseille de faire des "ucase()" autour du champ et de la valeur à rechercher histoire que ce soit pas case sensitive
 
Sinon, y'a rien de particulier pour faire un like dans VB.
 
A noter cependant que si ton LIKE porte sur un mot contenant un "%", alors il faut faire comme pour le "'", c'est à dire qu'il faut le remplacer par "%%" afin que le SGBD ne l'interprête pas.

Reply

Marsh Posté le 05-01-2005 à 12:10:09    

YO....
Les Grands esprits se rencontrent.
Je me suis rappelé à l'instant qu'en DB2, on utilise % et pas *.
Je viens de tester, et ça marche !
 
Ce jour est un grand jour.
Passer autant de temps sur une bétise pareille... Je suis attéré. Mais heureux d'avoir enfin la solution !
 
Merci
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed