Access sortează înregistrările în ordine ascendentă sau descendentă, fără a ține cont de caz. Totuși, prin scrierea câtorva linii de cod Visual Basic for Applications (VBA), puteți sorta textul după valorile sale de caracter ASCII. Sortarea pe baza valorilor ASCII diferențiază majusculele de literele mici și duce la o ordine sensibilă la litere mari și mici.
Următorul tabel demonstrează modul în care o ordine de sortare ascendentă în Access diferă de o ordine de sortare sensibilă la litere mari și mici:
Ordine pre-sortare |
Ordine ascendentă |
Ordinea sensibilă la litere mari și mici |
---|---|---|
c |
a |
A |
D |
A |
B |
a |
B |
C |
d |
b |
D |
B |
c |
a |
C |
C |
b |
A |
D |
c |
b |
d |
d |
Deși rezultatele din coloana Ordine ascendentă pot apărea la început oarecum imprevizibile, acestea nu sunt. În coloana Ordine ascendentă, apare "a" înainte de "A" și "B" înainte de "b". Acest lucru se întâmplă deoarece, atunci când este evaluat ca valori text, "A" = "a" și "B" = "b", fie cu litere mici, fie cu majuscule. Access ia în considerare ordinea inițială a valorilor. În coloana Ordine de pre-sortare, "a" precedă "A" și "B" precedă "b".
Atunci când se efectuează operațiunea de sortare sensibilă la litere mari și mici, valorile text sunt înlocuite cu valorile ASCII. De exemplu, A = 65, a = 97, B = 66, b = 98 și așa mai departe.
Scrieți codul VBA
-
Creați un modul VBA și tastați următoarea linie în secțiunea Declarații, dacă nu se află deja acolo:
Option Explicit
-
Tastați următoarea procedură într-un modul în 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
Funcția definită de utilizator precedentă, StrToHex, poate fi apelată dintr-o interogare. Când transmiteți numele câmpului de sortare acestei funcții, aceasta va sorta valorile de câmp în ordinea sensibilă la litere mari și mici.
-
Acum, creați o interogare din care veți apela această funcție.
În fila Creare, în grupul Interogări, faceți clic pe Proiectare interogare.
-
Selectați Adăugare tabele (Afișare tabel în Access).
-
Glisați câmpurile dorite în grilă.
-
În prima coloană necompletată, în rândul Câmp , tastați Expr1: StrToHex([Câmp Sortare]).
StrToHex este funcția definită de utilizator pe care ați creat-o anterior. SortField este numele câmpului care conține valorile sensibile la litere mari și mici.
-
În celula Sortare , faceți clic pe Ascendent sau Descendent.
Dacă alegeți ordinea ascendentă, valoarea care începe cu majuscule va apărea înaintea celor care încep cu litere mici. Aplicarea unei sortări de ordine descendentă face invers.
-
Comutați la Vizualizarea foaie de date.
Access afișează înregistrările, sortate în ordinea sensibilă la litere mari și mici.