Applies ToAccess für Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

  1. 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

  2. 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.

  3. 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.

  4. Wählen Sie Tabellen hinzufügen (Tabelle in Access anzeigen ) aus.

  5. Ziehen Sie die gewünschten Felder in das Raster.

  6. 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.

  7. 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.

  8. Zur Datenblattansicht wechseln.

    Access zeigt die Datensätze an, sortiert nach Groß- und Kleinschreibung.

Seitenanfang

Benötigen Sie weitere Hilfe?

Möchten Sie weitere Optionen?

Erkunden Sie die Abonnementvorteile, durchsuchen Sie Trainingskurse, erfahren Sie, wie Sie Ihr Gerät schützen und vieles mehr.

In den Communities können Sie Fragen stellen und beantworten, Feedback geben und von Experten mit umfassendem Wissen hören.