Trier les enregistrements en distinguant les majuscules des minuscules

Important :  Cet article a été traduit automatiquement, voir l’avertissement. Vous pouvez consulter la version en anglais de cet article ici.

Microsoft Office Access 2007 trie les enregistrements dans l'ordre croissant ou décroissant sans tenir compte des minuscules ou des majuscules. Vous pouvez toutefois trier le texte à partir des valeurs ASCII des caractères, il vous suffit pour cela d'écrire quelques lignes de code Visual Basic pour Applications (VBA). Les lettres majuscules sont alors différenciées des lettres minuscules et les enregistrements sont triés en fonction de la casse des lettres.

Le tableau suivant compare le tri par ordre croissant et le tri en fonction de la casse :

Ordre avant le tri

Ordre croissant

Commande qui respecte la casse r

c

a

C

D

C

B

a

B

C

d

b

D

B

c

a

C

C

b

C

D

c

b

d

d

Bien que le résultat de la colonne du tri par ordre croissant semble à première vue prévisible, il n'en est rien. Dans cette colonne « a » apparaît avant « A » et « B » avant « b ». Ce résultat est obtenu du fait que quand ces lettres, en minuscule ou majuscule, sont évaluées en tant que valeurs de texte, « A » = « a » et « B » = « b ». Access tient compte de l'ordre initial des valeurs. Dans la colonne avant le tri, « a » précède « A » et « B » précède « b ».

Lorsque le tri en fonction de la casse des lettres est effectué, les valeurs de texte sont remplacées par leurs valeurs ASCII. Par exemple, A = 65, a = 97, B = 66, b = 98 et ainsi de suite.

Écrire le code VBA

  1. Créez un module VBA et tapez la ligne suivante dans la section Déclarations, si elle n'y est pas :

Option Explicit

  1. Tapez la procédure suivante dans un module de Visual Basic Editor :

    Function StrToHex (S As Variant) As Variant
    '
    ' Converts a string to a series of hexadecimal digits.
    ' For example, StrToHex(Chr(9) & "A~") returns 09417E.
    '
    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

    La fonction précédente, StrToHex, définie par l'utilisateur, peut être appelée à l'aide d'une requête. Lorsque vous passez le nom du champ de tri à cette fonction, elle triera les valeurs en fonction de leur casse.

  2. Créez maintenant une requête pour appeler cette fonction.

    Dans l'onglet Créer, cliquez sur Création de requête dans le groupe Autre.

  3. Dans la boîte de dialogue Afficher la table, cliquez sur la table que vous voulez trier, puis cliquez sur Ajouter.

  4. Faites glisser les champs voulus dans la grille.

  5. Dans la première colonne vide, dans la ligne champ, tapez Expr1 : StrToHex([SortField]).

    StrToHex est la fonction définie par l'utilisateur que vous avez créé auparavant et ChampTri le nom du champ qui contient les valeurs composées de lettres majuscules et minuscules.

  6. Dans la cellule Trier, cliquez sur Ordre croissant ou Ordre décroissant.

    Si vous choisissez l'ordre croissant, les valeurs commençant par des lettres majuscules apparaîtront avant celles commençant par des lettres minuscules. L'inverse se produit si vous appliquez l'ordre décroissant.

  7. Basculez en mode Feuille de données.

    Access affiche les enregistrements triés en fonction de la casse des lettres.

Haut de la Page

Remarque : Avertissement traduction automatique : cet article a été traduit par un ordinateur, sans intervention humaine. Microsoft propose cette traduction automatique pour offrir aux personnes ne maîtrisant pas l’anglais l’accès au contenu relatif aux produits, services et technologies Microsoft. Comme cet article a été traduit automatiquement, il risque de contenir des erreurs de grammaire, de syntaxe ou de terminologie.

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoignez le programme Office Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×