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

Access records worden in oplopende of aflopende volgorde gesorteerd, ongeacht de aanvraag. Als u echter een paar regels VBA-code (Visual Basic for Applications) schrijft, kunt u tekst sorteren op de ASCII-tekenwaarden. Bij het sorteren op basis van de ASCII-waarden worden de hoofdletters onderscheiden van de kleine letters en wordt er een hoofdlettergevoelige volgorde uitgevoerd.

In de volgende tabel wordt weergegeven hoe een oplopende sorteervolgorde in Access verschilt van een hoofdlettergevoelige sorteervolgorde:

Volgorde vooraf sorteren

Oplopende volgorde

Hoofdlettergevoelige volgorde

c

a

A

D

A

B

a

B

C

d

b

D

B

c

a

C

C

b

A

D

c

b

d

d

Hoewel de resultaten in de kolom met oplopende volgorde in eerste instantie enigszins onvoorspelbaar kunnen lijken, zijn ze dat niet. In de kolom met oplopende volgorde wordt 'a' weergegeven vóór 'A' en 'B' voor 'b'. De fout treedt op, omdat wanneer het wordt geëvalueerd als tekstwaarde 'A' = 'a' en 'B' = 'b', kleine letters of hoofdletters zijn. In Access wordt rekening gehouden met de oorspronkelijke volgorde van de waarden. In de kolom met de vooraf gesorteerde volgorde gaat 'a' vooraf aan 'A' en 'B' vooraf aan 'b'.

Wanneer de volgorde op hoofdlettergevoelig wordt uitgevoerd, worden de tekstwaarden vervangen door de ASCII-waarden. Bijvoorbeeld A = 65, a = 97, B = 66, b = 98, etc.

De VBA-code schrijven

  1. Maak een VBA-module en typ de volgende regel in de declaratiesectie, als deze er niet al staat:

    Option Explicit

  2. Typ de volgende procedure in een module in 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
    

    De voorgaande door de gebruiker gedefinieerde functie, StrToHex, kan worden aangeroepen vanuit een query. Wanneer u de naam van het sorteerveld aan deze functie doorgeeft, worden de veldwaarden in hoofdlettergevoelige volgorde gesorteerd.

  3. Maak nu een query aan van waaruit u deze functie aanroept.

    Klik op het tabblad Maken in de groep Query's op Queryontwerp.

  4. Selecteer Tabellen toevoegen (Tabel weergeven in Access).

  5. Sleep de velden die u wilt naar het raster.

  6. In de eerste lege column, in de Veldrij, typt u Expr1: StrToHex([SortField]).

    StrToHex is de door de gebruiker gedefinieerde functie die u eerder hebt aangemaakt. SortField is de naam van het veld dat de hoofdlettergevoelige waarden bevat.

  7. In Cel sorteren, klikt u op Oplopend of Aflopend.

    Als u een oplopende volgorde kiest, wordt een waarde die begint met hoofdletters weergegeven vóór de letters die met kleine letters beginnen. Het toepassen van een aflopende sorteervolgorde doet het tegenovergestelde.

  8. Ga terug naar de gegevensbladweergave.

    Access laat de records zien die op hoofdlettergevoelige volgorde zijn gesorteerd.

Naar boven

Meer hulp nodig?

Meer opties?

Verken abonnementsvoordelen, blader door trainingscursussen, leer hoe u uw apparaat kunt beveiligen en meer.

Community's helpen u vragen te stellen en te beantwoorden, feedback te geven en te leren van experts met uitgebreide kennis.