Thursday, December 22, 2022

Datensätze nach Groß-/Kleinschreibung sortieren - Microsoft Support

Access sortiert Datensätze ohne Rücksicht auf Groß- und Kleinschreibung in aufsteigender oder absteigender Reihenfolge. Indem Sie jedoch einige Zeilen VBA-Code (Visual Basic for Applications) schreiben, können Sie Text nach seinen ASCII-Zeichenwerten sortieren. Die Sortierung anhand der ASCII-Werte unterscheidet die Großbuchstaben von den Kleinbuchstaben und führt zu einer case-sensitiven Reihenfolge.

Die folgende Tabelle zeigt, wie sich eine aufsteigende Sortierreihenfolge in Access von einer Sortierreihenfolge unterscheidet, bei der die Groß-/Kleinschreibung beachtet wird:

Reihenfolge vorsortieren

Aufsteigende Reihenfolge

Groß-/Kleinschreibung beachten

c

a

EIN

D

EIN

B

a

B

C

d

b

D

B

c

a

C

C

b

EIN

D

c

b

d

d

Obwohl die Ergebnisse in der Spalte „Aufsteigende Reihenfolge" zunächst etwas unvorhersehbar erscheinen mögen, sind sie es nicht. In der Spalte „Aufsteigende Reihenfolge" erscheint „a" vor „A" und „B" erscheint vor „b". Dies liegt daran, dass „A" = „a" und „B" = „b", wenn sie als Textwerte ausgewertet werden, unabhängig davon, ob es sich um Klein- oder Großbuchstaben handelt. Der Zugriff berücksichtigt die ursprüngliche Reihenfolge der Werte. In der Spalte Vorsortierreihenfolge steht „a" vor „A" und „B" vor „b".

Wenn der Sortiervorgang mit Berücksichtigung der Groß-/Kleinschreibung durchgeführt wird, werden die Textwerte durch ihre ASCII-Werte ersetzt. 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 im Abschnitt Deklarationen ein, falls sie noch nicht vorhanden ist:

    Option Explizit

  2. Geben Sie die folgende Prozedur in einem Modul im Visual Basic-Editor ein:

     Funktion StrToHex (S As Variant) As Variant
    '
    ' Konvertiert einen String in eine Reihe von Hexadezimalziffern.
    ' Beispielsweise gibt StrToHex(Chr(9) & "A~") 09417E zurück.
    '
    Dim Temp als String, I als Integer
    Wenn VarType(S) <> 8 Then
    StrToHex = S
    Anders
    Temp = ""
    Für I = 1 bis Len(S)
    Temp = Temp & Format(Hex(Asc(Mid(S, I, 1))), "00")
    Als nächstes ich
    StrToHex = Temp
    Ende Wenn
    Funktion beenden

    Die vorhergehende benutzerdefinierte Funktion, StrToHex, kann aus einer Abfrage aufgerufen werden. Wenn Sie den Namen des Sortierfelds an diese Funktion übergeben, werden die Feldwerte in Groß-/Kleinschreibung sortiert.

  3. Erstellen Sie nun eine Abfrage, aus der Sie diese Funktion aufrufen.

    Klicken Sie auf der Registerkarte Erstellen in der Gruppe Abfragen auf Abfrageentwurf .

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

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

  6. Geben Sie in der ersten leeren Spalte in der Feldzeile Expr1: StrToHex ( [ SortField ]) ein.

    StrToHex ist die benutzerdefinierte Funktion, die Sie zuvor erstellt haben. SortField ist der Name des Felds, das die Werte enthält, bei denen die Groß-/Kleinschreibung beachtet wird.

  7. Klicken Sie in der Zelle Sortieren auf Aufsteigend oder Absteigend .

    Wenn Sie die aufsteigende Reihenfolge wählen, werden die Werte, die mit Großbuchstaben beginnen, vor denen angezeigt, die mit Kleinbuchstaben beginnen. Das Anwenden einer Sortierung in absteigender Reihenfolge bewirkt das Gegenteil.

  8. Wechseln Sie zur Datenblattansicht.

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

Seitenanfang

No comments:

Post a Comment