Se connecter avec Microsoft
S'identifier ou créer un compte.
Bonjour,
Sélectionnez un autre compte.
Vous avez plusieurs comptes
Choisissez le compte avec lequel vous voulez vous connecter.

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 une table dans Access 2013).

  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.

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la langue ?
Qu’est-ce qui a affecté votre expérience ?
En cliquant sur Envoyer, vos commentaires seront utilisés pour améliorer les produits et services de Microsoft. Votre administrateur informatique sera en mesure de collecter ces données. Déclaration de confidentialité.

Nous vous remercions de vos commentaires.

×