Sortere poster med skelnen mellem store og små bogstaver i sorteringsrækkefølgen

Vigtigt: Denne artikel er maskinoversat. Se ansvarsfraskrivelsen. Du kan finde den engelske version af denne artikel her til din orientering.

Microsoft Office Access 2007 sorterer poster i stigende eller faldende rækkefølge uden at skelne mellem store og små bogstaver, men ved hjælp af nogle få linjer VBA-kode (Visual Basic for Applications) kan du sortere tekst efter ASCII-tegnværdien. Ved sortering på ASCII-tegnværdien skelnes der mellem store og små bogstaver i sorteringsrækkefølgen.

Oplysningerne i den følgende tabel viser, hvordan stigende sorteringsrækkefølge i Access adskiller sig fra en sorteringsrækkefølge med skelnen mellem store og små bogstaver:

Rækkefølge før sortering

Stigende sorteringsrækkefølge

Store og små bogstaver 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

Selvom resultatet i kolonnen Stigende sorteringsrækkefølge ved første øjekast kan virke noget uforudsigeligt, er det ikke tilfældet. I kolonnen Stigende sorteringsrækkefølge kommer "a" før "A" og "B" før "b." Det skyldes, at når bogstaverne vurderes efter deres tekstværdi, er "A" = "a" og "B" = "b" uden forskel på store og små bogstaver. Access benytter derfor disse forekomsters oprindelige rækkefølge, når deres værdier i øvrigt er ens, og i kolonnen Rækkefølge før sortering forekommer "a" før "A" og "B" før "b".

Når der sorteres med skelnen mellem store og små bogstaver, erstattes bogstavernes tekstværdier med deres ASCII-værdier, f.eks. A = 65, a = 97, B = 66 og b = 98.

Skrive VBA-koden

  1. Opret et VBA-modul, og skriv følgende i sektionen Erklæringer, hvis det ikke allerede står der:

Option Explicit

  1. Skriv følgende procedure 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

    Ovenstående brugerdefinerede funktion, StrToHex, kan kaldes fra en forespørgsel. Når du videregiver navnet på sorteringsfeltet til denne funktion, sorteres feltværdierne med skelnen mellem store og små bogstaver.

  2. Opret nu en forespørgsel, der kalder denne funktion.

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

  3. Klik på den tabel, du vil sortere, i dialogboksen Vis tabel, og klik derefter på Tilføj.

  4. Træk de ønskede felter til gitteret.

  5. Skriv i den første tomme kolonne i rækken feltUdtryk1: StrToHex([sorteringsfelt]).

    StrToHex er den brugerdefinerede funktion, du oprettede tidligere. Sorteringsfelt er navnet på det felt, der indeholder de værdier, der skal sorteres efter med skelnen mellem store og små bogstaver.

  6. Klik på Stigende eller Faldende i cellen Sorter.

    Hvis du vælger stigende rækkefølge, vises store bogstaver før små bogstaver. Ved sortering i faldende rækkefølge er det modsatte tilfældet.

  7. Skift til dataarkvisning.

    Access viser posterne sorteret med skelnen mellem store og små bogstaver.

Toppen af siden

Bemærk: Ansvarsfraskrivelse for maskinoversættelse: Denne artikel er blevet oversat af et computersystem uden menneskelig indgriben. Microsoft tilbyder disse maskinoversættelse for at hjælpe ikke-engelsktalende brugere til at kunne nyde indhold om Microsofts produkter, tjenester og teknologier. Da artiklen er maskinoversat, kan den indeholde forkerte ord eller syntaks- eller grammatikfejl.

Del Facebook Facebook Twitter Twitter Mail Mail

Var disse oplysninger nyttige?

Fantastisk! Har du mere feedback?

Hvordan kan vi forbedre det?

Tak for din feedback!

×