Page 1 sur 1

[Résolu] LIKE insensible aux accents ?

Publié : 21 nov. 2014 08:43
par goggi
Bonjour,
J'ai cherché, entendu parler de COLLATE, mais... j'ai aussi vu ce fil : https://forum.openoffice.org/fr/forum/v ... 53#p215453 et le commentaire de Dude.
Il date de juin 2013, y a-t-il eu du neuf sur le sujet ?
Y-a-t-il une solution sans COLLATE ?
Merci

Re: LIKE insensible aux accents ?

Publié : 21 nov. 2014 09:46
par DLE
Bonjour,

Il n'y a pas eu d'évolution de Base, AOO 411 est toujours en HSQL 1.8. :twisted:

Que souhaitez-vous faire exactement?

Bonne journée.

Re: LIKE insensible aux accents ?

Publié : 21 nov. 2014 11:20
par goggi
Bonjour DLE,
J'ai une table d'adhérents assez longue (près de 1000), et j'ai mis en place un système de recherche de nom par filtrage.
Je saisis le nom et le type de recherche voulu (boutons radio), dans une boîte de dialogue.
Fonction de cette saisie, je mets dans la propriété .Filter de la table quelque chose du genre

Code : Tout sélectionner

 "(UPPER(""T_ADHERENTS"".""nom"") = UPPER('" & sNom & "')" 
ou

Code : Tout sélectionner

 "(UPPER(""T_ADHERENTS"".""nom"") = LIKE UPPER('" & sNom & "'%)" 
avec les variantes de positionnement du % (avant et de part et d'autre).
Ainsi, grâce à UPPER, en cherchant "Andre" je trouve tous les adhérents andre ou ANDRE, mais pas André ni ANDRÉ, idem pour les Francois, FRANCOIS, FRANÇOIS et autres François.
C'est ce que j'aurais pourtant bien aimé obtenir car on ne peut pas empêcher les gens de saisir des lettres accentuées ou non.
Merci.

Re: LIKE insensible aux accents ?

Publié : 21 nov. 2014 11:34
par goggi
Bonjour,
Merci pour l'info.
Voilà ce que je veux faire :
Disposant d'une longue liste d'adhérents (près de 1000) affichée dans un contrôle Table d'un formulaire, j'ouvre par un bouton une boîte de dialogue dans laquelle je saisis tout ou partie d'un nom d'adhérent (des boutons radio permettent de sélectionner : nom complet, commence par, contient...).
À la validation, je modifie la propriété .Filter par quelque chose comme :

Code : Tout sélectionner

 "(UPPER(""T_ADHERENTS"".""nom"") = UPPER('" & sNom & "')" 
ou encore

Code : Tout sélectionner

 "(UPPER(""T_ADHERENTS"".""nom"") = LIKE UPPER('" & sNom & "'%)" 
Ça va bien pour trouver les Claude, ou Claude ou claude, mais ça ne marche pas si on cherche les Francois en saisissant françois...
Avec UPPER, je me joue des majuscules et minuscules, mais en saisissant Epinal, je ne trouve pas Épinal...
Comment faire ?

Re: LIKE insensible aux accents ?

Publié : 21 nov. 2014 12:42
par jeanmimi
Bonjour,
Je ne sais pas si cet exemple a été évoqué plus tôt, mais Pierre-Yves SAMYN avait proposé une Macro pour sélectionner un nom en tapant ses premières lettres, indifféremment en minuscules ou pas :

Code : Tout sélectionner

REM  *****  BASIC  *****
Option Explicit

Sub PysActualiser(PysEvt as object)
dim PysTexte as object, PysForm as object
dim PysSQL as string, PysChoix as string
    PysTexte = PysEvt.source
	PysChoix = PysTexte.text
    PysForm = PysTexte.model.Parent
	PysSQL = "SELECT * FROM rNom  WHERE Nom LIKE '" & pysChoix & "%'"
    PysForm.command = PysSQL
    PysForm.Reload
End Sub

Re: LIKE insensible aux accents ?

Publié : 30 nov. 2014 14:27
par DLE
Bonjour,

Une recherche sur le site developpez.com, a donné cette solution qui fonctionne sur la version 1.8.0 de HSQL .

Re: LIKE insensible aux accents ?

Publié : 01 déc. 2014 14:39
par goggi
En effet, c'est une bonne idée.
Merci pour l'aide.