Οι ταξινομήσεις Access κάνουν εγγραφή κατά αύξουσα ή φθίνουσα σειρά, ανεξαρτήτως υπόθεσης. Ωστόσο, γράφοντας μερικές γραμμές κώδικα της Visual Basic for Applications (VBA), μπορείτε να κάνετε ταξινόμηση κειμένου σύμφωνα με τις τιμές χαρακτήρων ASCII. Η ταξινόμηση βάσει τιμών ASCII διαχωρίζει τα κεφαλαία από τα πεζά γράμματα και έχει ως αποτέλεσμα μια σειρά με διάκριση πεζών-κεφαλαίων.
Ο παρακάτω πίνακας παρουσιάζει πώς μια αύξουσα σειρά ταξινόμησης στην Access διαφέρει από τη σειρά ταξινόμησης με διάκριση πεζών-κεφαλαίων:
Σειρά προδιαλογής |
Αύξουσα σειρά |
Σειρά με διάκριση πεζών-κεφαλαίων |
---|---|---|
γ |
α |
Α |
Δ |
A |
Β |
α |
Β |
C |
η |
β |
Δ |
Β |
γ |
α |
C |
C |
β |
Α |
Δ |
γ |
β |
η |
η |
Παρόλο που τα αποτελέσματα στη στήλη της αύξουσας σειράς μπορεί αρχικά να εμφανίζονται λίγο απρόβλεπτα, ωστόσο δεν είναι. Στη στήλη αύξουσας σειράς, το "α" εμφανίζεται πριν από το "Α" και το "Β" πριν από το "β". Αυτό συμβαίνει επειδή όταν υπολογίζονται ως τιμές κειμένου, "A" = "α" και "B" = "β", ανεξάρτητα από το αν είναι πεζά ή κεφαλαία. Η Access λαμβάνει υπόψη την αρχική σειρά των τιμών. Στη στήλη προδιαλογής, το "α" προηγείται του "Α" και το "Β" προηγείται του "β".
Όταν εκτελείται η λειτουργία ταξινόμησης με διάκριση πεζών-κεφαλαίων, οι τιμές κειμένου αντικαθίστανται με τις τιμές ASCII. Για παράδειγμα, A = 65, α = 97, B = 66, β = 98 κ.ο.κ.
Σύνταξη κώδικα VBA
-
Δημιουργήστε μια λειτουργική μονάδα VBA και πληκτρολογήστε την ακόλουθη γραμμή στην ενότητα "Δηλώσεις", εάν δεν έχει γίνει ήδη:
Option Explicit
-
Πληκτρολογήστε την ακόλουθη διαδικασία σε μια λειτουργική μονάδα στην επεξεργασία της Visual Basic:
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
Η προγενέστερη συνάρτηση που ορίζεται από το χρήστη, StrToHex, μπορεί να ονομαστεί από ένα ερώτημα. Όταν μεταβιβάσετε το όνομα του πεδίου ταξινόμησης σε αυτή τη συνάρτηση, θα ταξινομήσει τις τιμές πεδίου με διάκριση πεζών-κεφαλαίων.
-
Τώρα, δημιουργήστε ένα ερώτημα από το οποίο θα καλέσετε αυτή τη συνάρτηση.
Στην καρτέλα Δημιουργία, στην ομάδα Ερωτήματα, κάντε κλικ στην επιλογή Σχεδίαση ερωτήματος.
-
Επιλέξτε Προσθήκη πινάκων (Εμφάνιση πίνακα στην Access).
-
Σύρετε τα πεδία που θέλετε να μπουν στο πλέγμα.
-
Στην πρώτη κενή στήλη, στη γραμμή Πεδίο, πληκτρολογήστε Expr1: StrToHex([SortField]).
Η συνάρτηση StrToHex ορίζεται από το χρήστη και είναι αυτή που δημιουργήσατε νωρίτερα. Το πεδίο SortField είναι το όνομα του πεδίου που περιέχει τις τιμές με διάκριση πεζών-κεφαλαίων.
-
Στο κελί Ταξινόμηση, κάντε κλικ στην επιλογή Αύξουσα ή Φθίνουσα.
Εάν επιλέξετε αύξουσα σειρά, η τιμές που ξεκινούν με κεφαλαία γράμματα θα εμφανίζονται πριν από εκείνες που ξεκινούν με πεζά γράμματα. Η εφαρμογή φθίνουσας σειράς ταξινόμησης κάνει το αντίθετο.
-
Μετάβαση σε προβολή φύλλου δεδομένων.
Η Access εμφανίζει τις εγγραφές, ταξινομημένες με διάκριση πεζών-κεφαλαίων.