SQL - problème avec 'Like %' [Résolu]

Messages postés
5
Date d'inscription
mercredi 30 avril 2008
Dernière intervention
23 octobre 2008
- - Dernière réponse : cs_droopy30
Messages postés
5
Date d'inscription
mercredi 30 avril 2008
Dernière intervention
23 octobre 2008
- 23 oct. 2008 à 14:45
Bonjour,

Je tente de faire un petit programme sous DELPHI 2006 qui accède à une base de mots en ACCESS (1 table, 2 champs).
Je voudrais filtré le contenu de la base pour ne voir que, par exemple, les mots commençants par la lettre "A" et ayant un "S" comme 3ième lettre : ABS, ABSENT, ABSENTE,...

Facile, me direz vous !!!
Et bien pas tant que cela au vu des résultats que j'obtiens.

J'utilise les composants ADOConnection, ADOTable, DataSource.
Logiquement, ma requête devrait ressembler à ceci SELECT * FROM mots WHERE mot LIKE 'a_s%'. Or cette requête ne donne absolument aucun résultat.

- SELECT * FROM mots WHERE mot LIKE 'a_'
- SELECT * FROM mots WHERE mot LIKE 'a%'
et SELECT * FROM mots WHERE mot LIKE 'a*' me donnent tous les mots qui commence par la lettre "A". Ce qui n'est pas logique pour la première puisque le caractère "_" est censé remplacer 1 caractère et non plusieurs (je devrais avoir 'AS', 'AT', que des mots de 2 lettres - mais je peux y palier en rajoutant une condition sur la longueur des mots que je veux).

Il fut un temps lointain, j'avais réussi en VB avec : SELECT * FROM mots WHERE mot LIKE 'a?s*'. Le "?" remplaçant 1 et 1 seul caractère.


J'ai tourné le problème dans tous les sens. Lu et relu toutes les aides comme C:\Program Files\Fichiers communs\Borland Shared\BDE\LOCALSQL.HLP

J'en viens à me dire que j'ai un problème de configuration car dans tout ce que j'ai pu voir, personne a ce problème.

Camarades programmeurs, le néophyte en DELPHI que je suis,  vous en appelle A L'AIDE !!!!

Droopy30
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
5
Date d'inscription
mercredi 30 avril 2008
Dernière intervention
23 octobre 2008
3
Merci
PROBLEME RESOLU !

J'avais un mélo-mélo avec la propriété Filter de mon ADO_Query.

Merci à tous

Droopy30

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 98 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_droopy30
Messages postés
4996
Date d'inscription
dimanche 26 février 2006
Dernière intervention
27 mars 2018
0
Merci
bonsoir,
SELECT *
FROM CLIENT
WHERE SIGLECLIENT LIKE 'a_s%'

dans firebird nickel

cantador
Commenter la réponse de cs_cantador
Messages postés
5
Date d'inscription
mercredi 30 avril 2008
Dernière intervention
23 octobre 2008
0
Merci
Ben pas avec Access

Merci quand même.

Droopy30
Commenter la réponse de cs_droopy30
Messages postés
4996
Date d'inscription
dimanche 26 février 2006
Dernière intervention
27 mars 2018
0
Merci
Ben oui le sql access n'est pas aux normes internationales...
faut bien quelque chose pour se distinguer des autres...

essaie ceci avec access :

 WHERE (((MOT) Like "*a*s*"));

Je n'ai encore trouvé la solution sur une autre position de lettre...
c'est vraiment ch.. au possible...

cantador
Commenter la réponse de cs_cantador
Messages postés
5
Date d'inscription
mercredi 30 avril 2008
Dernière intervention
23 octobre 2008
0
Merci
CH... !!! c'est peu dire....
Surtout que cela fonctionne très bien en VB avec la même base de données.
J'arrivais même à faire des recherches du type "... like '??bs?n*' " (tous les mots avec 'b' et 's' en 3 et 4ième position et 'n' en 6 ième !!!)

Droopy30
Commenter la réponse de cs_droopy30
Messages postés
27
Date d'inscription
lundi 25 octobre 2004
Dernière intervention
6 octobre 2008
0
Merci
Bonsoir,

Quelle version d'access utilisez-vous ?

Dans un de mes programme en Delphi utilisant une base access, j'utilise la syntaxe identique à votre requete "SELECT * FROM mots WHERE mot LIKE 'a%'" à travers un ADOQUERY et cela fonctionne très bien.

Boris
Commenter la réponse de skyaero
Messages postés
5
Date d'inscription
mercredi 30 avril 2008
Dernière intervention
23 octobre 2008
0
Merci
Bonsoir Skyaero.

j'utilise Access 2003.
et la requête "SELECT * FROM mots WHERE mot LIKE 'a%'" fonctionne à merveille.... je suis d'accord.

Par contre "SELECT * FROM mots WHERE mot LIKE 'a_s%'" ne marche pas.

Imaginez : je fais des mots croisés. J'ai une définition pour un mot de 7 lettres et je sais que la 1ière est un "A" et la 3ième un "S".... donnez moi tous les mots qui correspondent à ces critères uniquement.
Si c'est pour chercher dans un dico, j'ai pas besoin d'un programme !

Droopy30
Commenter la réponse de cs_droopy30

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.