Logga in med Microsoft
Logga in eller skapa ett konto.
Hej,
Välj ett annat konto.
Du har flera konton
Välj det konto som du vill logga in med.

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 2013).

  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.

Hade du nytta av den här informationen?

Hur nöjd är du med språkkvaliteten?
Vad påverkade din upplevelse?
Genom att trycka på skicka, kommer din feedback att användas för att förbättra Microsofts produkter och tjänster. IT-administratören kan samla in denna data. Sekretesspolicy.

Tack för din feedback!

×