[SQL] Différencier majuscule et minuscule

Résolu
Laaris Messages postés 131 Statut Membre -  
Laaris Messages postés 131 Statut Membre -
Bonjour,

J'ai un petit soucis sous Access 97, j'ai une table qui répertorie les cases d'une grille (A1, A2, A3 ...)

Comme la grille est très grande on arrive à des cases qui ont pour référence (AA1, AA2, AA3) puis (aA1, aA2, aA3)

Le problème pour ces deux derniers cas est que comme Access, par défaut, ne différencie pas majuscule et minuscule, quand j'exécute la requête:

SELECT *
FROM coord_mailles
WHERE Description="AA1";


il me retourne "AA1" et "aA1", ce qui ne va pas du tout.

Je cherche donc une fonction qui différencie majuscule et minuscule dans une requête.

Merci d'avance.
Configuration: Windows XP
Firefox 3.0

3 réponses

  1. Christounet Messages postés 1272 Date d'inscription   Statut Membre Dernière intervention   1 393
     
    Bonjour Laaris,

    Le code suivant devrait faire ce que tu veux
    SELECT *
    FROM coord_mailles
    WHERE StrComp(Description,'AA1',0) = 0;


    A plus
    2
    1. Laaris Messages postés 131 Statut Membre 73
       
      Merci pour vos réponses.

      strcomp fonctionne dans le cas que j'ai mentionné mais c'était juste un exemple, et elle ne marchera pas pour d'autres requêtes notamment quand je veux faire un GROUP BY Description ou un SELECT DISTINCT Description ...


      Pour ce qui est de l'option case sensitive, c'est juste un truc à activer dans un des menus d'Access?
      0
  2. Christounet Messages postés 1272 Date d'inscription   Statut Membre Dernière intervention   1 393
     
    Bonjour Laaris,

    En cherchant sur le site de Microsoft, j'ai trouvé un code qui devrait t'aider
    Crées tout d'abord un module contenant le code suivant
    Function StrToHex(S As Variant) As Variant
             Dim Temp As String, I As Integer
                If VarType(S) <> 8 Then
                   StrToHex = S
                Else
                   Temp = ""
                For I = 1 To Len(S)
                   Temp = Temp & Format(Hex(Asc(Mid(S, I, 1))), "00")
                Next I
                StrToHex = Temp
             End If
    End Function

    Ce module va convertir une colonne texte en hexadécimal.
    Ensuite utilise le code suivant pour tes requêtes
    SELECT distinct StrToHex(Description) as Hexa , Description
    FROM coord_mailles
    SELECT *
    FROM coord_mailles
    WHERE StrToHex(Description) = StrToHex('AA1')
    SELECT COUNT(*) , StrToHex(Description), Description
    FROM coord_mailles
    GROUP BY StrToHex(Description) , Description
    

    A plus
    1
    1. Laaris Messages postés 131 Statut Membre 73
       
      Merci beaucoup, je vais essayer ça.


      EDIT: ça fonctionne mais c'est très long à exécuter, tant pis ça m'aide bien, encore merci

      0
  3. bong03 Messages postés 44 Statut Membre 3
     
    Bonjour,

    Je crois qu'il existe une option de SQL qui indique si SQL (les requêtes) sont "case sensitive". Mais je ne me rappelle plus laquelle....
    0