Access razvrsti zapise v naraščajočem ali padajočem vrstnem redu ne glede na primer. Vendar pa lahko s pisanjem nekaj vrstic VBA kodo (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 FunctionPredhodno 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 vAccess 2013 ).
-
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.