Access lajittelee tietueet nousevaan tai laskevaan järjestykseen kirjainkoosta riippumatta. Voit kuitenkin lajitella tekstiä sen ASCII-merkkiarvojen mukaan, jos kirjoitat muutaman rivin VBA-koodia. ASCII-arvojen mukainen lajittelu erottaa isot kirjaimet pienistä kirjaimista sekä lajittelee tulokset kirjainkoon huomioon ottavaan järjestykseen.
Seuraavassa taulukossa esitetään, miten Accessin nouseva järjestyds eroaa kirjainkoon huomioon ottavasta järjestyksestä:
Lajittelua edeltävä järjestys |
Nouseva järjestys |
Kirjainkoon huomioon ottava järjestys |
---|---|---|
c |
a |
A |
D |
A |
B |
a |
B |
C |
d |
b |
D |
B |
c |
a |
C |
C |
b |
A |
D |
c |
b |
d |
d |
Vaikka Nouseva järjestys -sarakkeen tulokset saattavat aluksi näyttää jonkin verran odottamattomilta, ne eivät kuitenkaan sellaisia ole. Nouseva järjestys -sarakkeessa a on ennen A:ta ja B ennen b:tä. Tämä johtuu siitä, että tekstiarvoja arvioitaessa A = a ja B = b kirjainkoosta riippumatta. Access ottaa huomioon arvojen alkuperäisen järjestyksen. Lajittelua edeltävä järjestys -sarakkeessa a on ennen A:ta ja B ennen b:tä.
Kirjainkoon huomioon ottavassa lajittelussa tekstiarvot korvataan niiden ASCII-arvoilla. Esimerkiksi A = 65, a = 97, B = 66, b = 98 jne.
VBA-koodin kirjoittaminen
-
Luo VBA-moduuli ja kirjoita seuraava rivi määrittelyosaan, jos sitä ei vielä siinä ole:
Option Explicit
-
Kirjoita seuraava toimintosarja moduuliin Visual Basic Editorissa:
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
Edellä esitetty käyttäjän määrittämä StrToHex-funktio voidaan kutsua kyselystä. Välittäessäsi lajittelukentän nimen tähän funktioon, se lajittelee kenttien arvot kirjainkoon huomioon ottavaan järjestykseen.
-
Luo nyt kysely, josta kutsut tätä funktiota.
Valitse Luo-välilehden Kyselyt-ryhmässä Kyselyn rakennenäkymä.
-
Valitse Lisää taulukoita (Näytä taulukko Accessissa).
-
Vedä ruudukkoon lisättävät kentät.
-
Kirjoita Kenttä-rivin ensimmäiseen tyhjään sarakkeeseen Expr1: StrToHex([SortField]).
StrToHex on aiemmin luomasi käyttäjän määrittämä funktio. SortField on kirjainkoon huomioon ottavia arvoja sisältävän kentän nimi.
-
Valitse Lajittelu-solussa Nouseva tai Laskeva.
Jos valitset nousevan järjestyksen, isoilla kirjaimilla alkavat arvot näytetään ennen pienillä kirjaimilla alkavia arvoja. Laskevaan järjestykseen lajitteleminen lajittelee arvot päinvastaisella tavalla.
-
Vaihda taulukkonäkymään.
Access näyttää tietueet kirjainkoon huomioon ottavaan järjestykseen lajiteltuna.