Requete avec le caractère _

Résolu
kkhuet Messages postés 92 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 3 juin 2009 - 18 mai 2005 à 15:21
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 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 ?

Merci

Nini

1 réponse

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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)
3
Rejoignez-nous