IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

SELECT insensible aux caractères accentués


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 70
    Points : 49
    Points
    49
    Par défaut SELECT insensible aux caractères accentués
    Voici le probleme:

    Exemple:
    je fait un recherche ds ma BD avec le terme
    <<multimedia>>

    et je veux qu'il me retourne les entrées contenant
    <<multimédia>>

    En fait j'aimerais ne pas etre obligés de mettre les accents sur un terme pour effectuer la recherche meme si ds la BD le terme comprend des accents...

    En php, le sql n'est pas sensible au accent mais il semble qu'avec access se ne soit pas le cas.

    Merci d'Avance pour l'aide et bravo pour le forum !

  2. #2
    Membre averti Avatar de temar
    Profil pro
    Étudiant
    Inscrit en
    Août 2004
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2004
    Messages : 316
    Points : 300
    Points
    300
    Par défaut
    Jpense que si tu mets un LIKE au lieu de mettre =, ça devrait marcher.

    SELECT *
    FROM MaTable
    Where MaValeur Like "multimedia"

  3. #3
    Membre actif Avatar de ActionAccess
    Inscrit en
    Mars 2006
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 175
    Points : 213
    Points
    213
    Par défaut
    Bonjour,

    Dans un cas proche, j'utilise une fonction de suppression des accents.
    Je supprime les accents au niveau de la valeur cherchée et je supprime les accents au niveau du champ dans lequel je cherche les infos.
    Il s'agit d'une suppression en affichage, les données en tant que telles ne sont pas modifiées.
    Une fonction de suppression des accents :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    Public Function fSupprimeAccents(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 "à", "á", "â", "ã", "ä", "å"
                    Chaine = Left(Chaine, Position - 1) & _
                            "a" & Mid(Chaine, Position + 1)
                Case "Ä", "À", "Á", "Â", "Ã", "Å"
                    Chaine = Left(Chaine, Position - 1) & _
                            "A" & Mid(Chaine, Position + 1)
                Case "ç"
                    Chaine = Left(Chaine, Position - 1) & _
                            "c" & Mid(Chaine, Position + 1)
                Case "Ç"
                    Chaine = Left(Chaine, Position - 1) & _
                            "C" & Mid(Chaine, Position + 1)
                Case "é", "è", "ë", "ê"
                    Chaine = Left(Chaine, Position - 1) & _
                            "e" & Mid(Chaine, Position + 1)
                Case "É", "È", "Ë", "Ê"
                    Chaine = Left(Chaine, Position - 1) & _
                            "E" & Mid(Chaine, Position + 1)
                Case "ì", "í", "î", "ï"
                    Chaine = Left(Chaine, Position - 1) & _
                            "i" & Mid(Chaine, Position + 1)
                Case "Ì", "Í", "Î", "Ï"
                    Chaine = Left(Chaine, Position - 1) & _
                            "I" & Mid(Chaine, Position + 1)
                Case "ñ"
                    Chaine = Left(Chaine, Position - 1) & _
                            "n" & Mid(Chaine, Position + 1)
                Case "Ñ"
                    Chaine = Left(Chaine, Position - 1) & _
                            "N" & Mid(Chaine, Position + 1)
                Case "ò", "ó", "ô", "õ", "ö"
                    Chaine = Left(Chaine, Position - 1) & _
                            "o" & Mid(Chaine, Position + 1)
                Case "Ò", "Ó", "Ô", "Õ", "Ö"
                    Chaine = Left(Chaine, Position - 1) & _
                            "O" & Mid(Chaine, Position + 1)
                Case "ù", "ú", "û", "ü"
                    Chaine = Left(Chaine, Position - 1) & _
                            "u" & Mid(Chaine, Position + 1)
                Case "Ù", "Ú", "Û", "Ü"
                    Chaine = Left(Chaine, Position - 1) & _
                            "U" & Mid(Chaine, Position + 1)
                Case "ý", "ÿ"
                    Chaine = Left(Chaine, Position - 1) & _
                            "y" & Mid(Chaine, Position + 1)
                Case "Ý"
                    Chaine = Left(Chaine, Position - 1) & _
                            "Y" & Mid(Chaine, Position + 1)
            End Select
        Next Position
        fSupprimeAccents = Chaine
    End Function
    Dans ton cas, il faudrait, je pense, travailler sur une requête comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT * , fSupprimeAccents(ChampDeRecherche) As ChampDeRechercheSansAccent
    FROM MaTable 
    Where ChampDeRechercheSansAccent = fSupprimeAccents(ValeurCherchée)
    A tester.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 70
    Points : 49
    Points
    49
    Par défaut
    merci pour vos reponse...
    LIKE ne fonctionne pas...

    Je vais essayer cette fonction et j'en donne des nouvelles

Discussions similaires

  1. SELECT : perte des caractères accentués
    Par HRS dans le forum SQL
    Réponses: 2
    Dernier message: 04/08/2008, 15h51
  2. [MySQL] Problème de requête dû aux caractères accentués
    Par conics dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 10/08/2007, 16h35
  3. Chaînes avec des caractères accentués dans Interbase
    Par François Marliac dans le forum Bases de données
    Réponses: 2
    Dernier message: 04/03/2004, 22h39
  4. [PostgreSQL] Les caractères accentués ?
    Par yacomor dans le forum Requêtes
    Réponses: 2
    Dernier message: 18/02/2003, 16h30
  5. insérer des caractères accentués INFORMIX/JDBC
    Par donde dans le forum Informix
    Réponses: 2
    Dernier message: 19/11/2002, 20h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo