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 7535 fois