Applies ToAccess för Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Access sorterar poster i stigande eller fallande ordning, utan hänsyn till skiftläge. Men genom att skriva några rader med VBA-kod (Visual Basic for Applications) kan du sortera text efter dess ASCII-teckenvärden. Om du sorterar utifrån ASCII-värden skiljer sig versaler från gemener och resulterar i en skiftlägeskänslig sorteringsordning.

I följande tabell visas hur en stigande sorteringsordning i Access skiljer sig från en skiftlägeskänslig sorteringsordning:

Försorteringsordning

Stigande sorteringsordning

Skiftlägeskänslig sorteringsordning

c

a

A

D

A

B

a

B

C

d

b

D

F

c

a

C

C

b

A

D

c

b

d

d

Även om resultaten i kolumnen i stigande ordning först kan se lite oförutsägbara ut så är de inte det. I kolumnen i stigande ordning visas "a" före "A" och " B" före "b". Detta inträffar eftersom, när det utvärderas som textvärden, "A" = "a" och "B" = "b," oavsett om det är gemener eller versaler. Access tar hänsyn till den ursprungliga ordningen av värdena. I kolumnen i försorteringsordning föregår "a" före "A" och "B" före "b".

När den skiftlägeskänsliga sorteringsåtgärden utförs ersätts textvärdena med deras ASCII-värden. Till exempel A = 65, a = 97, B = 66, b = 98 och så vidare.

Skriv VBA-koden

  1. Skapa en VBA-modul och skriv följande rad i avsnittet Deklarationer om den inte redan finns:

    Option Explicit

  2. Skriv följande procedur i en modul i 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
    

    Den föregående användardefinierade funktionen StrToHex, kan anropas från en fråga. När du skickar namnet på sorteringsfältet till den här funktionen sorteras fältvärdena i skiftlägeskänslig sorteringsordning.

  3. Skapa nu en fråga som du kommer att anropa den här funktionen från.

    Klicka på Frågedesign i gruppen Frågor på fliken Skapa.

  4. Välj Lägg till tabeller (Visa tabell i Access).

  5. Dra de fält du vill ha till rutnätet.

  6. I den första tomma kolumnen, på raden Fält, skriver du Uttr1: StrToHex([SortField]).

    StrToHex är den användardefinierade funktionen som du skapade tidigare. SortField är namnet på det fält som innehåller de skiftlägeskänsliga värdena.

  7. Välj Sortera celler Stigande eller Fallande.

    Om du väljer stigande ordning visas värdet som börjar med versaler före de som börjar med gemener. Om du använder en fallande sorteringsordning är resultatet motsatt.

  8. Växla till databladsvy.

    Access visar posterna sorterade i skiftlägeskänslig ordning.

Överst på sidan

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.

Communities hjälper dig att ställa och svara på frågor, ge feedback och få råd från experter med rika kunskaper.