Access kārto ierakstus augošā vai dilstošā secībā, neatkarīgi no gadījuma. Tomēr, rakstot dažas Visual Basic for Applications (VBA) koda rindiņas, varat kārtot tekstu pēc tā ASCII rakstzīmju vērtībām. Kārtojot pēc ASCII vērtībām, lielie burti tiek izšķirti no mazajiem burtiem, un rezultātā rodas reģistrjutīga secība.
Šajā tabulā redzams, kā augoša kārtošanas secība programmā Access atšķiras no reģistrjutīgas kārtošanas secības.
Kārtošanas secība pirms kārtošanas |
Augoša secība |
Reģistrjutīga secība |
---|---|---|
c |
a |
A |
D |
A |
B |
a |
B |
C |
d |
b |
D |
B |
c |
a |
C |
C |
b |
A |
D |
c |
b |
d |
d |
Lai gan rezultāti augošas secības kolonnā sākumā var šķiet nedaudz neparedzēti, tie nav redzami. Kolonnā Augošā secībā pirms "A" tiek rādīts "a", bet pirms "b" tiek rādīts " B". Tas notiek tāpēc, ka, izvērtējot kā teksta vērtības, "A" = "a" un "B" = "b", gan mazie burti, gan lielie burti. Programma Access ņem vērā vērtību sākotnējo secību. Kolonnā Pirms kārtošanas secības pirms "a" un "B" ir "b".
Kad tiek veikta reģistrjutīga kārtošanas darbība, teksta vērtības tiek aizstātas ar to ASCII vērtībām. Piemēram, A = 65, a = 97, B = 66, b = 98 utt.
VBA koda rakstīšana
-
Izveidojiet VBA moduli un deklarēšanas sadaļā ierakstiet šādu rindiņu, ja tā vēl nav:
Option Explicit
-
Visual Basic redaktora modulī ierakstiet šo procedūru:
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
No vaicājuma var izsaukt iepriekšējo lietotāja definēto funkciju StrToHex. Kad šai funkcijai nokārtojat kārtošanas lauka nosaukumu, tas kārto lauka vērtības reģistrjutīgā secībā.
-
Tagad izveidojiet vaicājumu, no kura šai funkcijai būs jāzvana.
Cilnes Izveide grupā Vaicājumi noklikšķiniet uz Vaicājuma noformējums.
-
Atlasiet Pievienot tabulas (Rādīt tabulu programmā Access).
-
Velciet laukus, kurus vēlaties pievienot režģim.
-
Pirmās tukšās kolonnas rindā Lauks ierakstietExpr1: StrToHex([SortField]).
StrToHex ir lietotāja definētā funkcija, ko izveidojāt iepriekš. SortField ir tā lauka nosaukums, kurā iekļautas reģistrjutīgas vērtības.
-
Kārtošanas šūnā noklikšķiniet uz Augošā secībā vaiDilstošā secībā.
Ja izvēlaties augošu secību, vērtība, kas sākas ar lielajiem burtiem, tiks parādīta pirms tiem, kas sākas ar mazajiem burtiem. Lietojot dilstošu secību, tiek lietots pretējais.
-
Pārslēgtos uz datu lapas skatu.
Programma Access parāda ierakstus, kas sakārtoti reģistrjutīgā secībā.