[SQL] Différencier majuscule et minuscule

Résolu/Fermé
Laaris Messages postés 130 Date d'inscription mardi 1 avril 2008 Statut Membre Dernière intervention 17 juin 2011 - 2 juil. 2008 à 11:45
Laaris Messages postés 130 Date d'inscription mardi 1 avril 2008 Statut Membre Dernière intervention 17 juin 2011 - 2 juil. 2008 à 14:20
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.
A voir également:

3 réponses

Christounet Messages postés 1264 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 29 juillet 2010 1 383
2 juil. 2008 à 12:13
Bonjour Laaris,

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


A plus
2
Laaris Messages postés 130 Date d'inscription mardi 1 avril 2008 Statut Membre Dernière intervention 17 juin 2011 73
2 juil. 2008 à 13:19
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
Christounet Messages postés 1264 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 29 juillet 2010 1 383
2 juil. 2008 à 14:14
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
Laaris Messages postés 130 Date d'inscription mardi 1 avril 2008 Statut Membre Dernière intervention 17 juin 2011 73
2 juil. 2008 à 14:20
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
bong03 Messages postés 43 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 20 novembre 2013 2
2 juil. 2008 à 11:57
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