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

Access sorterer poster i stigende eller faldende rækkefølge uden hensyntagen til store eller små bogstaver. Ved at skrive nogle få linjer VBA-kode (Visual Basic for Applications) kan du imidlertid sortere tekst efter ASCII-tegnværdierne. Sortering på grundlag af ASCII-værdierne adskiller de store bogstaver fra de små bogstaver og resulterer i en rækkefølge, hvor der skelnes mellem store og små bogstaver.

Følgende tabel viser, hvordan en stigende sorteringsrækkefølge i Access adskiller sig fra en sorteringsrækkefølge, der adskiller store og små bogstaver:

Forudsorteringsrækkefølge

Stigende rækkefølge

Rækkefølge med forskel på store og små bogstaver

c

a

A

D

A

B

a

B

C

d

b

D

B

c

a

C

C

b

A

D

c

b

d

d

Selvom resultaterne i kolonnen Stigende rækkefølge i starten muligvis ser lidt uforudsigelige ud, er de det ikke. I kolonnen Stigende rækkefølge vises "a" før "A" og " B" før "b". Dette sker, fordi "A" = "a" og "B" = "b", når de evalueres som tekstværdier, uanset om de er små eller store bogstaver. Access tager højde for værdiernes oprindelige rækkefølge. I kolonnen Forudsorteringsrækkefølge står "a" foran "A" og "B" foran "b".

Når sorteringshandlingen mellem store og små bogstaver udføres, erstattes tekstværdierne med deres ASCII-værdier. F.eks. A = 65, a = 97, B = 66, b = 98 osv.

Skriv VBA-koden

  1. Opret et VBA-modul, og skriv følgende linje i Erklæringssektion, hvis den ikke allerede findes:

    Option Explicit

  2. Skriv følgende fremgangsmåde i et 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 foregående brugerdefinerede funktion, StrToHex, kan kaldes fra en forespørgsel. Når du videregiver navnet på sorteringsfeltet til denne funktion, sorterer den feltværdierne i rækkefølge, hvor der tages hensyn til store eller små bogstaver.

  3. Nu skal du oprette en forespørgsel, hvorfra du kan kalde denne funktion.

    Klik på Forespørgselsdesign i gruppen Forespørgsler under fanen Opret.

  4. Vælg Tilføj tabeller (Vis tabel i Access).

  5. Træk de felter, du ønsker, til gitteret.

  6. I den første tomme kolonne i rækken Felt skal du skrive Expr1: StrToHex([SortField]).

    StrToHex er den brugerdefinerede funktion, du oprettede tidligere. SortField er navnet på det felt, der indeholder de værdier, der er følsomme over for store og små bogstaver.

  7. Klik på Stigende eller Faldende i cellen Sortér.

    Hvis du vælger stigende rækkefølge, vises værdien, der begynder med store bogstaver, før dem, der begynder med små bogstaver. Anvendelse af sortering i faldende rækkefølge gør det modsatte.

  8. Skift til dataarkvisning.

    Access viser posterne sorteret i rækkefølge, med hensyntagen til store og små bogstaver.

Toppen af siden

Har du brug for mere hjælp?

Vil du have flere indstillinger?

Udforsk abonnementsfordele, gennemse kurser, få mere at vide om, hvordan du sikrer din enhed og meget mere.

Communities hjælper dig med at stille og besvare spørgsmål, give feedback og høre fra eksperter med omfattende viden.