Recherche
Recherche
Les mémos
 ↑  
Je débute...
Visites

 992295 visiteurs

 1 visiteur en ligne

Critères insensibles aux Accents

Dans une requête, pour englober toutes les accentuations possibles d'un critère :
 

SELECT LeTexte FROM LaTable WHERE LeTexte Like MatchAccents([Critère ?]) & "*";

Le critère "aero" ou "aéro" saisit par exemple dans cette requête paramétrée permet de retourner en une seule fois les valeurs "aèronef", "aéroplane", "aerodrome"

'/
'/ A placer dans la section déclarative
'/
Private Const ReplA = "[aàáâãäåÄ]"
Private Const ReplC = "[cç]"
Private Const ReplE = "[eéèëê]"
Private Const ReplI = "[iìíîï]"
Private Const ReplN = "[nñ]"
Private Const ReplO = "[oòóôõö]"
Private Const ReplU = "[uùúûü]"
Private Const ReplY = "[yýÿ]"

   

Public Function MatchAccents(ByVal Chaine As String) As String
    Dim Position As Integer
    
    For Position = Len(Chaine) To 1 Step -1
        Select Case Mid(Chaine, Position, 1)
            Case "a", "à", "á", "â", "ã", "ä", "å", "Ä"
                Chaine = Left(Chaine, Position - 1) & ReplA & Mid(Chaine, Position + 1)
            Case "c", "ç"
                Chaine = Left(Chaine, Position - 1) & ReplC & Mid(Chaine, Position + 1)
            Case "e", "é", "è", "ë", "ê"
                Chaine = Left(Chaine, Position - 1) & ReplE & Mid(Chaine, Position + 1)
            Case "i", "ì", "í", "î", "ï"
                Chaine = Left(Chaine, Position - 1) & ReplI & Mid(Chaine, Position + 1)
            Case "n", "ñ"
                Chaine = Left(Chaine, Position - 1) & ReplN & Mid(Chaine, Position + 1)
            Case "o", "ò", "ó", "ô", "õ", "ö"
                Chaine = Left(Chaine, Position - 1) & ReplO & Mid(Chaine, Position + 1)
            Case "u", "ù", "ú", "û", "ü"
                Chaine = Left(Chaine, Position - 1) & ReplU & Mid(Chaine, Position + 1)
            Case "y", "ý", "ÿ"
                Chaine = Left(Chaine, Position - 1) & ReplY & Mid(Chaine, Position + 1)
        End Select
    Next Position

    MatchAccents = Chaine

End Function


Catégorie : Les mémos - String
Page lue 5699 fois