Requete SQL - Ignorer les accents [Résolu]

Signaler
Messages postés
330
Date d'inscription
mercredi 6 décembre 2000
Statut
Membre
Dernière intervention
26 octobre 2017
-
 Utilisateur anonyme -
Bonjour,

   J'ai une base DAO qui contient entr'autres deux champs au format Memo. Le premier contient du texte avec accents et le second le même texte sans les accents.
 
   Pour effectuer une recherche j'utilise donc les deux zones avec un argument qui contient ou ne contient pas d'accent. 

   Cette technique ne me convient pas. Il existe peut être une méthode plus simple qui pourrait s'appliquer directement sur l'ordre SQL ? 

Avez vous la solution à ce problème

Par avance merci.

7 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
Dans Access, je tapes :

SELECT * FROM Table1 WHERE Raison LIKE '*G?n?ral*'

c'est Ok.

je viens d'avoir une idée, me basant sur les RegExp...
une solution qui me plait davantage :

SELECT * FROM Table1 WHERE Raison LIKE '*G[eé]n[eé]ral*'
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
tu peux faire un like :

sCriteria = "Lycée général Sanchez"
sCriteria = Replace(sCriteria, "é", "?")
sCriteria = Replace(sCriteria, "è", "?")
sSQL = "SELECT ... WHERE `Raison` LIKE '" & sCriteria & "' "

trouvera Lycée, LYCEE, etc
Messages postés
330
Date d'inscription
mercredi 6 décembre 2000
Statut
Membre
Dernière intervention
26 octobre 2017

   Si je remplace les caractères accentués par des ? je perds de la clareté dans l'affichage de ce texte. Le texte, représente une raison sociale et ne tolére pas à l'affichage son altération par des ? 

   Si le texte contient                                             "Lycée général Sanchez"    
   La recherche ne pourra se faire par exemple que sur  "général"
   une recherche sans accent sur                                       "general" sera infructueuse

J'ai peut être mal compris ce que tu me proposes

Merci pour ta réponse
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
oui, je ne parle pas d'alterer l'affichage... juste la chaine recherchée
Messages postés
330
Date d'inscription
mercredi 6 décembre 2000
Statut
Membre
Dernière intervention
26 octobre 2017

J'ai essayé en remplaçant dans la recherche Sql les accents par "?" mais ça ne marche pas.

Exemple:   j'ai 3 lignes dans ma table:

1)      "Lycée général Sanchez"   2 accents
2)      "Lycée géneral Sanchez"   1 accent
3)      "Lycée general Sanchez"   Pas d'accent

Déjà, en écrivant   -->   Select * from ...... where Champ Like  "%G?n?ral%"   Rien n'est sélectionné 
Idem avec              -->   Select * From ..... where Champ Like  "G?n?ral"          Rien n'est sélectionné                             
J'ai dû écrire          --> Select * from ...... where Champ Like  "%G_n_ral%"   Je sélectionne alors les lignes 1 et 2
En écrivant:           -->   Select * from ...... where Champ Like  "%General%"   Je ne sélectionne que la ligne 3

J'ai peut être mal compris ce que tu me proposes ?

Ps:  Peut-être rien à voir mais ma base est en DAO 3.5.1

 
Messages postés
330
Date d'inscription
mercredi 6 décembre 2000
Statut
Membre
Dernière intervention
26 octobre 2017

Bravo !

   Je ne dirais qu'un mot: Excellent

Tu devrais publier un article sur le sujet. Beaucoup de personnes ont été confrontés à ce problème.

Merci encore pour ton support

Excellentissime, même. Un immense merci !