Access razvrsti zapise v naraščajočem ali padajočem vrstnem redu ne glede na primer. Vendar pa lahko s pisanjem nekaj vrstic kode Visual Basic for Applications (VBA) razvrstite besedilo po njenih vrednostih znakov ASCII. Z razvrščanjem po vrednostih ASCII ločite velike črke od malih črk, rezultat pa je v vrstnem redu, ki razlikuje med velikimi in malimi črkami.
V spodnji tabeli je prikazano, kako se naraščajoči vrstni red razvrščanja v Accessu razlikuje od vrstnega reda razvrščanja, ki razlikuje med velikimi in malimi črkami:
Vrstni red pred razvrščanjem |
Naraščajoče vrstni red |
Vrstni red, ki razlikuje velike in male črke |
---|---|---|
c |
a |
A |
D |
A |
B |
a |
B |
C |
d |
b |
D |
B |
c |
a |
C |
C |
b |
A |
D |
c |
b |
d |
d |
Čeprav so rezultati v stolpcu Naraščajoči vrstni red na prvi pogled morda prikazani nekoliko nepredvidljivi, niso. V stolpcu Naraščajoče vrstni red se pred »A« in »B« prikaže »a« in »b«. Do tega pride, ker, če je ta ovrednotena kot besedilna vrednost, "A" = "a" in "B" = "b", ne glede na to, ali so male ali velike. Access upošteva izvirni vrstni red vrednosti. V stolpcu Vrstni red pred razvrščanjem je »a« pred »A« in »B« pred »b«.
Ko izvedete razvrščanje z razlikovanjem velikih in malih črk, so besedilne vrednosti zamenjane z vrednostmi ASCII. Na primer A = 65, a = 97, B = 66, b = 98 in tako naprej.
Pisanje kode VBA
-
Ustvarite modul VBA in vnesite to vrstico v razdelek Deklaracije, če še ni na voljo:
Option Explicit
-
V modul v urejevalniku za Visual Basic vnesite ta postopek:
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
Predhodno uporabniško določeno funkcijo StrToHex lahko pri klicate iz poizvedbe. Ko to funkcijo poimenujte polje za razvrščanje, bodo vrednosti polj razvrščanja v vrstnem redu, ki razlikuje med velikimi in malimi črkami.
-
Zdaj ustvarite poizvedbo, iz katere boste poklicali to funkcijo.
Na zavihku Ustvari v skupini Poizvedbe kliknite Načrt poizvedbe.
-
Izberite Dodaj tabele (Pokaži tabelo v Accessu).
-
Povlecite polja, ki jih želite, v mrežo.
-
V prvem praznem stolpcu v vrstico Polje vnesite Expr1: StrToHex([SortField]).
StrToHex je uporabniško določena funkcija, ki ste jo prej ustvarili. SortField je ime polja, ki vsebuje vrednosti, ki razlikujejo med velikimi in malimi črkami.
-
V celici Razvrsti kliknite Naraščajoče ali Padajoče.
Če izberete naraščajoči vrstni red, bo vrednost, ki se začne z velikimi črkami, prikazana pred tistimi, ki se začnejo z malimi črkami. Z razvrščanjem padajočega vrstnega reda naredite nasprotno.
-
Preklopi v pogled podatkovnega lista.
Access prikaže zapise, razvrščene po vrstnem redu, ki razlikuje med malimi in velikimi črkami.