Records sorteren in hoofdlettergevoelige sorteervolgorde

Belangrijk : Dit artikel is automatisch vertaald, bekijk de disclaimer. De Engelse versie van dit artikel vindt u hier voor referentiedoeleinden.

In Microsoft Office Access 2007 worden records in aflopende of oplopende volgorde gesorteerd, zonder dat er verschil wordt gemaakt tussen hoofdletters en kleine letters. Door slechts een paar regels VBA-code ( (Visual Basic for Applications)) toe te voegen kunt u tekst sorteren op de ASCII-tekenwaarden. Als u sorteert op basis van de ASCII-waarden, wordt er verschil gemaakt tussen hoofdletters en kleine letters, waardoor u een hoofdlettergevoelige sorteervolgorde verkrijgt.

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

Oorspronkelijke volgorde

Oplopende volgorde

Hoofdlettergevoelige orde r

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 Oplopende volgorde op het eerste gezicht onvoorspelbaar lijken, is dat toch niet het geval. In de kolom Oplopende volgorde wordt "a" voor "A" en " B" voor "b" gerangschikt. Dit komt omdat de items als tekstwaarden worden geëvalueerd: "A" = "a" en "B" = "b", ongeacht de hoofdletters of kleine letters. Access houdt rekening met de oorspronkelijke volgorde van de waarden. In de kolom Oorspronkelijke volgorde wordt "a" voor "A" en "B" voor "b" gerangschikt.

Bij een hoofdlettergevoelige sorteervolgorde worden de tekstwaarden vervangen door de desbetreffende ASCII-waarden. Bijvoorbeeld, A = 65, a = 97, B = 66, b = 98, enzovoort.

De VBA-code schrijven

  1. Maak een VBA-module aan en typ de volgende regel in de declaratiesectie als dat nog niet is gebeurd:

Option Explicit

  1. Typ de volgende procedure in een Visual Basic Editor-module:

    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 vanuit een query worden opgeroepen. Als u de naam van het sorteerveld doorgeeft aan deze functie, worden de veldwaarden in de hoofdlettergevoelige volgorde gesorteerd.

  2. Maak nu een query aan, waarin u deze functie oproept.

    Ga naar het het tabblad Maken en klik in de groep Overige op Queryontwerp.

  3. Klik in het dialoogvenster Tabel weergeven op de tabel die u wilt sorteren. Klik vervolgens op Toevoegen.

  4. Sleep de velden die u wilt toevoegen naar het raster.

  5. Typ in de eerste lege kolom, in de rij veldExpr1: StrToHex([sorteerveld]).

    StrToHex is de door de gebruiker gedefinieerde functie die u eerder hebt gemaakt. SortField is de naam van het veld met de hoofdlettergevoelige waarden.

  6. Klik op Oplopend of Aflopend in de cel Sorteren.

    Als u de oplopende volgorde kiest, worden de waarden die met hoofdletters beginnen weergegeven voor de waarden die met een kleine letter beginnen. Een aflopende volgorde doet het omgekeerde.

  7. Schakel over naar de databasebladweergave.

    In Access worden de records in de hoofdlettergevoelige sorteervolgorde weergegeven.

Naar boven

Opmerking : Disclaimer voor automatische vertaling: Dit artikel is vertaald door een computersysteem zonder menselijke tussenkomst. Microsoft biedt deze automatische vertalingen aan om niet-Engels sprekende gebruikers te helpen de inhoud over producten, services en technologieën van Microsoft te raadplegen. Omdat het artikel automatisch is vertaald, bevat het mogelijk fouten in grammatica, woordenschat en syntaxis.

Uw vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Office Insiders

Was deze informatie nuttig?

Bedankt voor uw feedback.

Hartelijk dank voor uw feedback! Het lijkt ons een goed idee om u in contact te brengen met een van onze Office-ondersteuningsagents.

×