Access sortiert Datensätze in aufsteigender oder absteigender Reihenfolge ohne Berücksichtigung der Groß-/Kleinschreibung. Wenn Sie jedoch ein paar Zeilen VBA-Code (Visual Basic for Applications) schreiben, können Sie Text nach seinen ASCII-Zeichenwerten sortieren. Bei der Sortierung anhand der ASCII-Werte werden die Großbuchstaben von den Kleinbuchstaben unterschieden und die Groß-/Kleinschreibung wird beachtet.
Die folgende Tabelle veranschaulicht, wie sich eine aufsteigende Sortierreihenfolge in Access von einer Sortierreihenfolge mit Berücksichtigung der Groß-/Kleinschreibung unterscheidet:
Reihenfolge vorsortieren |
Aufsteigende Reihenfolge |
Groß-/Kleinschreibung beachten |
---|---|---|
c |
a |
A |
D |
A |
B |
a |
B |
C |
d |
b |
D |
B |
c |
a |
C |
C |
b |
A |
D |
c |
b |
t |
d |
Obwohl die Ergebnisse in der Spalte „Aufsteigende Reihenfolge“ auf den ersten Blick etwas unvorhersehbar erscheinen mögen, sind sie es nicht. In der Spalte „Aufsteigende Reihenfolge“ erscheint „a“ vor „A“ und „B“ vor „b“. Dies tritt auf, weil bei der Auswertung als Textwert „A“ = „a“ und „B“ = „b“, egal ob Klein- oder Großbuchstaben. Der Zugriff berücksichtigt die ursprüngliche Reihenfolge der Werte. In der Spalte „vorsortierte Reihenfolge“ steht „a“ vor „A“ und „B“ vor „b“.
Beim Sortieren nach Groß- und Kleinschreibung werden die Textwerte durch ihre ASCII-Werte ersetzt. Zum Beispiel: A = 65, a = 97, B = 66, b = 98, und so weiter.
Schreiben Sie den VBA-Code
-
Erstellen Sie ein VBA-Modul und geben Sie die folgende Zeile in den Abschnitt „Deklarationen“ ein, falls sie dort noch nicht vorhanden ist:
Option Explicit
-
Geben Sie die folgende Prozedur in ein Modul im Visual Basic-Editor ein:
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
Die vorangehende benutzerdefinierte Funktion, StrToHex, kann aus einer Abfrage heraus aufgerufen werden. Wenn Sie den Namen des Sortierfelds an diese Funktion übergeben, sortiert sie die Feldwerte unter Berücksichtigung der Groß- und Kleinschreibung.
-
Erstellen Sie nun eine Abfrage, von der aus Sie diese Funktion aufrufen werden.
Klicken Sie auf der Registerkarte Erstellen in der Gruppe Abfragen auf Abfrageentwurf.
-
Wählen Sie Tabellen hinzufügen (Tabelle in Access anzeigen ) aus.
-
Ziehen Sie die gewünschten Felder in das Raster.
-
Geben Sie in der ersten leeren Spalte, in der Zeile Feld, Expr1: StrToHex( [SortField]).
StrToHex ist die benutzerdefinierte Funktion, die Sie zuvor erstellt haben. SortField ist der Name des Feldes, das die Werte unter Berücksichtigung der Groß-/Kleinschreibung enthält.
-
Klicken Sie im Feld Reihenfolge auf Aufsteigend oder Absteigend.
Wenn Sie aufsteigende Reihenfolge wählen, werden Werte, die mit Großbuchstaben beginnen, vor denen angezeigt, die mit Kleinbuchstaben beginnen. Das Anwenden einer absteigenden Sortierung bewirkt das Gegenteil.
-
Zur Datenblattansicht wechseln.
Access zeigt die Datensätze an, sortiert nach Groß- und Kleinschreibung.