[SQL] Différencier majuscule et minuscule
Résolu
Laaris
Messages postés
131
Statut
Membre
-
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:
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.
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
-
Bonjour Laaris,
Le code suivant devrait faire ce que tu veuxSELECT * FROM coord_mailles WHERE StrComp(Description,'AA1',0) = 0;
A plus-
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?
-
-
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 suivantFunction 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êtesSELECT 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 -
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....