Access zapise sortira uzlaznim ili silaznim redoslijedom bez obzira na velika i mala slova. No pisanjem nekoliko redaka koda programa Visual Basic for Applications (VBA) tekst možete sortirati prema vrijednostima ASCII znakova. Sortiranje na temelju ASCII vrijednosti razlikuje velika slova od malih slova, a rezultati razlikuju velika i mala slova.
Sljedeća tablica pokazuje kako se uzlazni redoslijed sortiranja u programu Access razlikuje od redoslijeda sortiranja koji razlikuje velika i mala slova:
Redoslijed prije sortiranja |
Uzlazni redoslijed |
Redoslijed razlikovanog velikih i malih slova |
---|---|---|
c |
a |
A |
D |
A |
B |
a |
B |
C |
d |
b |
D |
B |
c |
a |
C |
C |
b |
A |
D |
c |
b |
d |
d |
Iako se rezultati u stupcu Uzlazni redoslijed mogu prikazati donekle nepredvidljivi, nisu. U stupcu Uzlazni redoslijed ispred "b" pojavit će se "a" i "B". To se događa jer, kada se vrednuju kao tekstne vrijednosti, "A" = "a" i "B" = "b", bez obzira na to jesu li mala ili velika. Access uzima u obzir izvorni redoslijed vrijednosti. U stupcu Unaprijed sortiraj redoslijed "a" prethodi "A" i "B" ispred "b".
Kada se provodi operacija sortiranja koja razlikuje velika i mala slova, tekstne vrijednosti zamjenjuju se njihovim ASCII vrijednostima. Na primjer, A = 65, a = 97, B = 66, b = 98 itd.
Pisanje VBA koda
-
Stvorite VBA modul i upišite sljedeći redak u odjeljak Deklaracije ako ga već nema:
Option Explicit
-
U modul u visual Basic Editor upišite sljedeći postupak:
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
Prethodna korisnički definirana funkcija, StrToHex, može se pozvati iz upita. Kada funkciji proslijedite naziv polja za sortiranje, on će sortirati vrijednosti polja u redoslijedu koji razlikuje velika i mala slova.
-
Sada stvorite upit iz kojeg ćete nazvati ovu funkciju.
Na kartici Stvaranje u grupi Upiti kliknite Dizajn upita.
-
Odaberite Dodaj tablice (Prikaži tablicu u programu Access).
-
Povucite željena polja u rešetku.
-
U prvi prazan stupac u retku Polje upišiteIzraz1: StrToHex([SortField]).
StrToHex je korisnički definirana funkcija koju ste prethodno stvorili. SortField naziv je polja koje sadrži vrijednosti koje razlikuju velika i mala slova.
-
U ćeliji Sortiranje kliknite Uzlaznoili Silazno.
Ako odaberete uzlazni redoslijed, vrijednost koja počinje velikim slovima pojavit će se ispred onih koji počinju malim slovima. Primjena silaznog sortiranja čini suprotno.
-
Prijeđite u prikaz podatkovne tablice.
Access prikazuje zapise sortirane redoslijedom koji razlikuje velika i mala slova.