Critères sans accents
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
Dernière modification : 08/02/2010 01:59
Catégorie : Les mémos - String
Page lue 8099 fois