Applies ToAccess pour Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Access trie les enregistrements dans l’ordre croissant ou décroissant, sans tenir compte du cas. Toutefois, en écrivant quelques lignes de code Visual Basic pour Applications (VBA), vous pouvez trier le texte sur la base de ses valeurs de caractère ASCII. Le tri sur la base des valeurs ASCII différencie les lettres majuscules des lettres minuscules et permet d’obtenir un ordre qui respecte la casse.

Ce tableau montre la différence entre un ordre de tri croissant et un ordre de tri qui respecte la casse :

Ordre de tri préalable

Ordre croissant

Ordre qui respecte la casse

c

a

A

D

A

B

a

B

C

j

b

D

B

c

a

C

C

b

A

D

c

b

j

j

Les résultats dans la colonne Ordre croissant pourraient au premier abord paraître imprévisibles, sans toutefois l’être. Dans la colonne Ordre croissant, « a » s’affiche avant « A » et « B » avant « b ». Cela se produit parce que, lorsqu’elles sont évaluées en tant que valeurs de texte, « A » = « a » et « B » = « b », que ce soit en minuscule ou en majuscule. Access tient compte de l’ordre d’origine des valeurs. Dans la colonne Ordre de tri préalable, « a » précède « A » et « B » précède « b ».

Lorsque le tri respectant la casse est effectué, les valeurs de texte sont remplacées par leurs valeurs ASCII. Par exemple, A = 65, a = 97, B = 66, b = 98, etc.

Écrire le code VBA

  1. Créez un module VBA et tapez la ligne suivante dans la section Déclarations, si ce n’est déjà fait :

    Option Explicit

  2. Tapez cette procédure 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 définie par l’utilisateur, StrToHex, peut être appelée à partir d’une requête. Lorsque vous passez le nom du champ de tri à cette fonction, les valeurs de champ sont triées dans l’ordre respectant la casse.

  3. À présent, créez une requête à partir de laquelle vous allez appeler cette fonction.

    Sous l’onglet Créer, dans le groupe Requêtes, cliquez sur Création de requête.

  4. Sélectionnez Ajouter des tables (Afficher la table dans Access).

  5. Faites glisser les champs souhaités sur la grille.

  6. 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éée précédemment. SortField est le nom du champ qui contient les valeurs respectant la casse.

  7. Dans la cellule de Tri, cliquez sur Croissant ou Décroissant.

    Si vous choisissez l’ordre croissant, la valeur commençant par des lettres majuscules s’affiche avant celles commençant par des lettres minuscules. L’application d’un tri d’ordre décroissant fait l’inverse.

  8. Basculez en mode Feuille de données.

    Access affiche les enregistrements triés dans un ordre respectant la casse.

Haut de la page

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.