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

cs_droopy30 5 Messages postés mercredi 30 avril 2008Date d'inscription 23 octobre 2008 Dernière intervention - 4 oct. 2008 à 20:39 - Dernière réponse : cs_droopy30 5 Messages postés mercredi 30 avril 2008Date d'inscription 23 octobre 2008 Dernière intervention
- 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 

7 réponses

Répondre au sujet
cs_droopy30 5 Messages postés mercredi 30 avril 2008Date d'inscription 23 octobre 2008 Dernière intervention - 23 oct. 2008 à 14:45
+3
Utile
PROBLEME RESOLU !

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

Merci à tous

Droopy30
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_droopy30
cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention - 5 oct. 2008 à 23:25
0
Utile
bonsoir,
SELECT *
FROM CLIENT
WHERE SIGLECLIENT LIKE 'a_s%'

dans firebird nickel

cantador
Commenter la réponse de cs_cantador
cs_droopy30 5 Messages postés mercredi 30 avril 2008Date d'inscription 23 octobre 2008 Dernière intervention - 5 oct. 2008 à 23:33
0
Utile
Ben pas avec Access

Merci quand même.

Droopy30
Commenter la réponse de cs_droopy30
cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention - 6 oct. 2008 à 15:47
0
Utile
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
cs_droopy30 5 Messages postés mercredi 30 avril 2008Date d'inscription 23 octobre 2008 Dernière intervention - 6 oct. 2008 à 17:06
0
Utile
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
skyaero 27 Messages postés lundi 25 octobre 2004Date d'inscription 6 octobre 2008 Dernière intervention - 6 oct. 2008 à 22:01
0
Utile
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
cs_droopy30 5 Messages postés mercredi 30 avril 2008Date d'inscription 23 octobre 2008 Dernière intervention - 6 oct. 2008 à 22:15
0
Utile
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.