[SQL] Différencier majuscule et minuscule [Résolu/Fermé]

Messages postés
132
Date d'inscription
mardi 1 avril 2008
Statut
Membre
Dernière intervention
17 juin 2011
- - Dernière réponse : Laaris
Messages postés
132
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.
Afficher la suite 

3 réponses

Meilleure réponse
approuvée par Jean-François Pillou
Messages postés
1265
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1203
2
Merci
Bonjour Laaris,

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


A plus

Dire « Merci » 2

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 59125 internautes nous ont dit merci ce mois-ci

Laaris
Messages postés
132
Date d'inscription
mardi 1 avril 2008
Statut
Membre
Dernière intervention
17 juin 2011
21 -
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?
Messages postés
1265
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1203
1
Merci
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
Laaris
Messages postés
132
Date d'inscription
mardi 1 avril 2008
Statut
Membre
Dernière intervention
17 juin 2011
21 -
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

Messages postés
39
Date d'inscription
vendredi 4 juin 2004
Statut
Membre
Dernière intervention
20 novembre 2013
3
0
Merci
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....