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

In diesem Thema wird das Verfahren zum Sortieren von IP-Adressen (Internet Protocol) beschrieben, die in einer Access-Datenbank gespeichert sind.

Einführung

Wenn Sie mit IP-Adressen arbeiten, wissen Sie wahrscheinlich bereits, dass dies nicht so einfach ist wie das Arbeiten mit Text oder Zahlen. Dies liegt daran, dass eine IP-Adresse tatsächlich eine Sammlung von vier numerischen Werten ist, die durch einen Punkt (.) getrennt sind, wobei jeder Wert eine Zahl zwischen 0 und 255 ist. In der folgenden Tabelle sind Daten aufgeführt, bevor eine Sortierreihenfolge angewendet wird.

MachineID

Employee

Ort

IPAddress

1

...

...

123.4.245.23

2

...

...

104.244.253.29

3

...

...

1.198.3.93

4

...

...

32.183.93.40

5

...

...

104.30.244.2

6

...

...

104.244.4.1

Das Sortieren von IP-Adressen in Access ist eine Herausforderung, da Access keinen speziellen Datentyp zum Speichern von IP-Adressen bereitstellt. Obwohl eine IP-Adresse nur eine Sammlung von Zahlen ist, können Sie eine IP-Adresse nicht in einem numerischen Feld speichern. Dies liegt daran, dass ein numerisches Feld nur einen einzelnen Dezimaltrennzeichen (.) unterstützt, während eine IP-Adresse drei Punkte (.) enthält. Dies bedeutet, dass Sie die Adressen in einem Textfeld speichern müssen.

Da Sie IP-Adressen in einem Textfeld speichern, können Sie die integrierten Sortierschaltflächen in Access nicht verwenden, um die Adressen sinnvoll zu sortieren. Die Sortierschaltflächen sortieren Werte in einem Textfeld immer in alphabetischer Reihenfolge, auch wenn die Zeichen Zahlen sind. Anders ausgedrückt: Die Adressen werden nach der ersten Ziffer, dann nach der zweiten Ziffer usw. sortiert und nicht nach den numerischen Werten, aus denen die Adresse besteht. In der folgenden Tabelle sind die Adressen aus der vorherigen Tabelle in alphabetischer Reihenfolge im Feld IPAddress aufgeführt.

MachineID

IPAddress

3

1.198.3.93

2

104.244.253.29

6

104.244.4.1

5

104.30.244.2

1

123.4.245.23

4

32.183.93.40

Die Adressen, die mit 1 beginnen, werden vor den Adressen angezeigt, die mit 2 beginnen usw. Die folgende Tabelle zeigt die Adressen in der richtigen aufsteigenden Reihenfolge.

MachineID

IPAddress

3

1.198.3.93

4

32.183.93.40

5

104.30.244.2

6

104.244.4.1

2

104.244.253.29

1

123.4.245.23

Um die Schritte zum Sortieren dieser Adressen zu verstehen, teilen Sie die IP-Adressen in vier numerische Teile auf. Die Adressen müssen nach dem ersten Teil sortiert werden, dann für jeden Wert im ersten Teil, dann nach dem zweiten Teil usw. Die Tabelle zeigt jeden Teil in einer anderen Spalte an, und da die Spalten einfache numerische Werte enthalten, ist es möglich, die Spalten von links nach rechts in aufsteigender Reihenfolge zu sortieren, wie in der folgenden Tabelle dargestellt.

Parti

Teil II

TeilIII

PartIV

1

198

3

93

32

183

93

40

104

30

244

2

104

244

4

1

104

244

253

29.

123

4

245

23

Das separate Sortieren der vier Teile ist der Trick hinter dem Sortieren von IP-Adressen. Im folgenden Verfahren erstellen Sie eine Abfrage, die zusätzlich zum Feld IP-Adresse vier berechnete Spalten enthält, in denen jede Spalte einen Teil der Adresswerte speichert. Die erste berechnete Spalte enthält den ersten numerischen Teil der Adresse, die zweite berechnete Spalte den zweiten numerischen Teil der Adresse usw. Anstatt die Datensätze nach dem Feld IPAddress zu sortieren, sortiert die Abfrage die Datensätze nach den vier berechneten Spalten.

Erstellen der Abfrage

Sie erstellen eine Auswahlabfrage mit dem Namen Sortierte IP-Adressen, die die Datensätze in aufsteigender Reihenfolge von IP-Adressen anzeigt. Angenommen, die aktuelle Datenbank enthält eine Tabelle mit dem Namen MachineDetails, die ein Textfeld mit dem Namen IPAddress enthält.

  1. Klicken Sie auf >Abfrageentwurf erstellen

  2. Wählen Sie Tabellen hinzufügen (Tabelle in Access anzeigen ) aus, und ziehen Sie Computerdetails in den oberen Abschnitt der Entwurfsansicht.

  3. Ziehen Sie die Felder MachineID und IPAddress in das Abfrageentwurfsraster.

  4. Sie können nun die berechneten Spalten hinzufügen. Geben Sie in der ersten leeren Spalte auf der rechten Seite den Ausdruck PartI ein: Val(Left([IPAddress],(InStr(1,[IPAddress],".") -1))) in der Zeile Feld . Der Ausdruck gibt die Zeichen vor dem ersten Punkt (.) zurück. im Feld IPAddress.

    Überprüfen Sie nun den Ausdruck. Da Sie nicht wissen, wie viele Ziffern den ersten Teil der Adresse bilden, verwenden Sie die InStr-Funktion , um die Position des ersten Zeitraums zu ermitteln. Beim Subtrahieren von 1 (zum Ausschließen des Zeitraums) wird die Anzahl der Ziffern im ersten Teil zurückgegeben. Anschließend verwenden Sie diese Zahl mit der Left-Funktion , um diese Anzahl von Zeichen aus dem Feld IPAddress zu extrahieren, beginnend mit dem Zeichen ganz links. Schließlich rufen Sie die Val-Funktion auf, um die von der Left-Funktion zurückgegebenen Zeichen in eine Zahl zu konvertieren. Dieser letzte Schritt ist erforderlich, da der zugrunde liegende Datentyp Text ist.

  5. Speichern Sie die Abfrage, indem Sie auf der Symbolleiste für den Schnellzugriff auf Speichern klicken. Es empfiehlt sich, dies nach jedem Zwischenschritt zu tun.

  6. Fügen Sie die Spalte für den zweiten Adressteil hinzu. Geben Sie in der Spalte rechts neben PartI PartI partII: Val(Mid([IPAddress],InStr(1,[IPAddress],"")ein. +1,InStr(InStr(1;[IPAddress],".") +1,[IPAddress],".") -InStr(1,[IPAddress],".") -1)) in der Zeile Feld . Der Ausdruck gibt die Zeichen zurück, die sich zwischen dem ersten und zweiten Perioden im Feld IPAddress befinden.

    Überprüfen Sie erneut den Ausdruck. Da Sie nicht wissen, wie viele Ziffern den zweiten Teil der Adresse bilden oder wo genau der zweite Teil beginnt (weil Sie nicht wissen, wie lange der erste Teil ist), verwenden Sie die InStr-Funktion , um die Positionen der Punkte zu ermitteln. Anschließend verwenden Sie die Mid-Funktion , um die Zeichen zu extrahieren, die dem ersten Punkt folgen, aber dem zweiten Punkt vorangehen. Schließlich rufen Sie die Val-Funktion auf, um die von der Mid-Funktion zurückgegebenen Zeichen in eine Zahl zu konvertieren. Dieser letzte Schritt ist erforderlich, da der zugrunde liegende Datentyp Text ist.

  7. Fügen Sie die Spalte für den dritten Adressteil hinzu. Geben Sie in der Spalte rechts neben PartII PartIII: Val(Mid([IPAddress],InStr(InStr(1,[IPAddress],".") ein. +1,[IPAddress],".") +1,InStr(InStr(InStr(1;[IPAddress],".") +1,[IPAddress],".") +1,[IPAddress],".") -InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") -1)) in der Zeile Feld . Der Ausdruck gibt die Zeichen zurück, die sich zwischen dem zweiten und dritten Perioden im Feld IPAddress befinden.

    Überprüfen Sie erneut den Ausdruck. Da Sie nicht wissen, wie viele Ziffern den dritten Teil der Adresse bilden oder wo genau der dritte Teil beginnt (da Sie nicht wissen, wie lange der erste und der zweite Teil sind), verwenden Sie die InStr-Funktion , um die Positionen der Punkte zu ermitteln. Anschließend verwenden Sie die Mittel-Funktion , um die Zeichen zu extrahieren, die dem zweiten Punkt folgen, aber dem dritten Punkt vorangehen. Schließlich rufen Sie die Val-Funktion auf, um die von der Mid-Funktion zurückgegebenen Zeichen in eine Zahl zu konvertieren. Dieser letzte Schritt ist erforderlich, da der zugrunde liegende Datentyp Text ist.

  8. Fügen Sie die Spalte für den vierten und letzten Adressteil hinzu. Geben Sie in der Spalte rechts neben PartIII PartIV: Val(Right([IPAddress],Len([IPAddress])-InStr(InStr(InStr(1,[IPAddress],".") ein. +1,[IPAddress],".") +1,[IPAddress],"."))) in der Zeile Feld . Der Ausdruck gibt die Zeichen zurück, die auf den letzten Zeitraum folgen.

    Überprüfen Sie erneut den Ausdruck. Der Schlüssel besteht darin, die Position des dritten Zeitraums zu finden und dann alle zeichen zu extrahieren, die darauf folgen. Da Sie nicht genau wissen, wo sich der dritte Punkt befindet, rufen Sie die InStr-Funktion dreimal auf, um die Position des dritten Punkts zu ermitteln. Anschließend verwenden Sie die Funktion Len , um die Anzahl der Ziffern im vierten Teil zu berechnen. Die Anzahl der zurückgegebenen Ziffern wird dann mit der Right-Funktion verwendet, um die vielen Zeichen aus dem rechten Teil des IpAddress-Felds zu extrahieren. Schließlich rufen Sie die Val-Funktion auf, um die von der Mid-Funktion zurückgegebenen Zeichen in eine Zahl zu konvertieren. Dieser letzte Schritt ist erforderlich, da der zugrunde liegende Datentyp Text ist.

  9. Legen Sie die Zeile Sortieren aller vier berechneten Spalten auf Aufsteigend fest.

    Wichtig    Die Zeile Sortieren der IpAddress-Spalte muss leer bleiben.

    Wenn Sie nach anderen Feldwerten sortieren möchten, platzieren Sie die Felder zusätzlich zu den Adressen links oder rechts von allen vier berechneten Spalten. Platzieren Sie die anderen Sortierfelder nicht zwischen den berechneten Spalten.

  10. Der nächste Schritt besteht darin, die vier berechneten Spalten im Datenblatt auszublenden. Bevor Sie dies tun, wechseln Sie jedoch zur Datenblattansicht, um das Ergebnis der Ausdrücke in den berechneten Spalten anzuzeigen. In der folgenden Tabelle sind die Spalten aufgeführt, die in der Datenblattansicht angezeigt werden.

    MachineID

    IPAddress

    Parti

    Teil II

    TeilIII

    PartIV

    3

    1.198.3.93

    1

    198

    3

    93

    4

    32.183.93.40

    32

    183

    93

    40

    5

    104.30.244.2

    104

    30

    244

    2

    6

    104.244.4.1

    104

    244

    4

    1

    2

    104.244.253.29

    104

    244

    253

    29.

    1

    123.4.245.23

    123

    4

    245

    23

  11. Wechseln Sie zurück zur Entwurfsansicht, und deaktivieren Sie das Kontrollkästchen in der Zeile Anzeigen aller vier berechneten Spalten. Dadurch wird verhindert, dass die berechneten Spalten in der Datenblattansicht angezeigt werden.

  12. Geben Sie optional Kriterien für das Ausschließen von Datensätzen aus der Abfrage an.

  13. Wechseln Sie zur Datenblattansicht, um die Datensätze in sortierter Reihenfolge anzuzeigen. Die Datensätze werden in aufsteigender Reihenfolge der IP-Adressen ordnungsgemäß sortiert angezeigt.

Weitere Verwendungsmöglichkeiten für sortierte IP-Adressen

Überprüfen von IP-Adressen während der Dateneingabe

Wenn Sie Adressen überprüfen möchten, ohne Code zu schreiben, können Sie dies in begrenztem Umfang tun, indem Sie die InputMask-Eigenschaft des Felds auf ###.## festlegen. 0;" " und die Format-Eigenschaft des IP-Adressfelds, um &&&&&&&&&&&&.

Was bewirkt die Eingabemaske? Wenn Sie mit der Eingabe in das Adressfeld beginnen, verhindert das Eingabeformat, dass Sie andere Zeichen als Zahlen und Leerzeichen zwischen den drei Punkten eingeben. Wenn ein numerischer Teil eine zweistellige Zahl ist, lassen Sie die dritte Ziffer leer, oder geben Sie stattdessen ein Leerzeichen ein. Beachten Sie, dass diese Eingabemaske den Benutzer nicht warnt, wenn er die Eingabe eines oder mehrerer Teile der Adresse überspringt oder nur Leerzeichen anstelle eines numerischen Werts eingibt. Beispiel: "345. .3. " würde als gültige Adresse akzeptiert werden.

Was bewirkt das Anzeigeformat? Wenn Sie mit der Eingabe fertig sind und das Feld verlassen, entfernt das Anzeigeformat die Leerzeichen in der Adresse und zeigt nur die Zahlen und Punkte an. Wenn Sie also "354.35.2.12" eingegeben haben, wird die Adresse als "354.35.2.12" angezeigt. Beachten Sie, dass die Leerzeichen wieder angezeigt werden, wenn Sie in die Adresse klicken oder F2 drücken (um in den Bearbeitungsmodus zu wechseln).

Tipp: Wenn Sie eine Adresse kopieren möchten, wechseln Sie zur vorherigen Spalte oder zum vorherigen Steuerelement, drücken Sie die TAB-TASTE, um die formatierte Adresse auszuwählen, und klicken Sie dann auf Kopieren. Auf diese Weise kopieren Sie nicht die Adresszeichenfolge, die Leerzeichen enthält.

Sortieren von Datensätzen in einem Formular oder Bericht nach IP-Adressen

Wenn Sie ein Formular oder einen Bericht erstellen müssen, in dem die Datensätze nach IP-Adressen sortiert sind, basieren Sie für das neue Objekt auf einer Abfrage, die Adressen wie zuvor beschrieben sortiert, anstatt auf der Tabelle, in der die Adressen gespeichert sind.

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.