Sortera poster i skiftlägeskänslig ordning

Obs!: Vi vill kunna erbjuda dig bästa möjliga supportinnehåll så fort som möjligt och på ditt språk. Den här sidan har översatts med hjälp av automatiserad översättning och kan innehålla grammatiska fel eller andra felaktigheter. Vår avsikt är att den här informationen ska vara användbar för dig. Vill du berätta för oss om informationen är till hjälp längst ned på sidan? Här är artikeln på engelska som referens.

Microsoft Office Access 2007 sorterar poster i stigande eller fallande ordning utan hänsyn till versaler. Genom att skriva några rader med Visual Basic for Applications (VBA) kod sortera du text efter sina ASCII-teckenvärden. Sortera baserat på ASCII-värden skiljer på versaler från gemener och resultat i en skiftlägeskänslig ordning.

Tabellen nedan visar hur en stigande sorteringsordning i Access skiljer sig från en skiftlägeskänslig sorteringsordning:

Före sorteringsordning

Stigande ordning

Skiftlägeskänslig 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

Även om resultatet i stigande ordning kolumn kanske först visas något oväntade inte. I kolumnen stigande ordning ”a” visas innan ”A” och ”B” visas före ”b”. Detta beror på att, när utvärderas som textvärden, ”A” = ”en” och ”B” = ”b”, både gemener och versaler. Access tar hänsyn till den ursprungliga ordern av värdena. I kolumnen före sorteringsordning ”en” föregår ”A” och ”B” föregår ”b”.

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

Skriva VBA-kod

  1. Skapa en VBA-modul och Skriv följande rad i avsnittet deklarationer om det inte redan finns där:

Option Explicit

  1. 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ält till den här funktionen sorteras fältvärden i skiftlägeskänslig ordning.

  2. Skapa en fråga som kommer du ringer i den här funktionen.

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

  3. Klicka på den tabell som du vill sortera i dialogrutan Visa tabell och klicka sedan på Lägg till.

  4. Dra de fält som du vill använda i rutnätet.

  5. I den första tomma kolumnen i raden fält skriver Uttryck1: StrToHex([SortField]).

    StrToHex är användardefinierad funktion som du skapade tidigare. SortField är namnet på det fält som innehåller värdena som är skiftlägeskänsliga.

  6. Klicka på Stigande eller Fallandei cellen Sortera .

    Om du väljer stigande ordning, visas värdet som börjar med versaler innan de som börjar med gemener. Använda fallande ordning ordning betyder motsatsen.

  7. Växla till databladsvyn.

    Access visar poster i skiftlägeskänslig ordning.

Överst på sidan

Utöka dina Office-kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Office Insiders