kkhuet
Messages postés92Date d'inscriptionlundi 16 mai 2005StatutMembreDernière intervention 3 juin 2009
-
18 mai 2005 à 15:21
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
18 mai 2005 à 18:54
Bonjour,
ceci est ma toute première question sur ce forum alors soyez indulgents
Je développe actuellement en VB sous Access. Dans une de mes tables
sous Access, je voudrais récupérer des données contenant le caractère _
grâce à un recordset. Voici mon code :
rst.Open "SELECT * FROM X WHERE X.Code LIKE 'FI_%'", ado
Mon problème est que dans le champ Code, il y a d'autres données qui
commencent par FI et lorsque je fais tourner mon appli, VB me renvoie
tout (FI_% + les autres FI%). Or sous Access, si je teste ma requête,
ça fonctionne, je n'obtiens que les FI_%.
Cela vient sûrement du fait que le caractère _ représente
n'importe quel caractère en SQL. J'ai donc essayé toutes sortes
d'astuces (comme par exemple remplacer le _ par son code ASCII) mais
qui ne fonctionnent pas non plus. Auriez-vous une idée ?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 18 mai 2005 à 18:54
Salut
Et oui, comme tu le dis, le caractère _ en SQL équivaut au ? en DOS (et le % à *).
Pour utiliser le vrai caractère _ dans une recherche (valable aussi pour n'importe quel caractère spécial), il suffit de l'encadrer avec des crochets carrés :
"SELECT * FROM X WHERE X.Code LIKE 'FI[_]%'"
le crochet carré pouvant lui même être recherché avec ... Like 'tralala[[]%'"
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)