Sortieren von IP-Adressen in Access

Hinweis: Wir möchten Ihnen die aktuellsten Hilfeinhalte so schnell wie möglich in Ihrer eigenen Sprache bereitstellen. Diese Seite wurde automatisiert übersetzt und kann Grammatikfehler oder Ungenauigkeiten enthalten. Unser Ziel ist es, Ihnen hilfreiche Inhalte bereitzustellen. Teilen Sie uns bitte über den Link am unteren Rand dieser Seite mit, ob die Informationen für Sie hilfreich sind. Hier finden Sie den englischen Artikel als Referenz.

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 das Arbeiten mit Text oder Zahlen nicht so einfach ist. Dies liegt daran, dass es sich bei einer IP-Adresse tatsächlich um eine Sammlung von vier numerischen Werten handelt, die durch einen Punkt (.) getrennt sind, wobei jeder Wert eine Zahl zwischen 0 und 255 ist. Die folgende Tabelle enthält Daten, bevor eine Sortierreihenfolge angewendet wird.

Computer-Nr

Employee

Speicherort

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 stellt eine Herausforderung dar, da Access keinen speziellen Datentyp zum Speichern von IP-Adressen bereitstellt. Obwohl es sich bei einer IP-Adresse nur um eine Sammlung von Zahlen handelt, können Sie keine IP-Adressen in einem numerischen Feld speichern. Dies liegt daran, dass ein numerisches Feld nur einen einzelnen Dezimalpunkt (.) 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 auf sinnvolle Weise zu sortieren. Die Sortierschaltflächen sortieren die Werte in einem Textfeld immer alphabetisch, auch wenn es sich bei den Zeichen um Zahlen handelt. Anders ausgedrückt: die Adressen werden nach der ersten Ziffer, dann nach der zweiten Ziffer usw. sortiert, statt nach den numerischen Werten, aus denen sich die Adresse zusammensetzt. Die folgende Tabelle zeigt die Adressen aus der vorhergehenden Tabelle, die in alphabetischer Reihenfolge im Feld IPAddress sortiert sind.

Computer-Nr

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.

Computer-Nr

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 einfacher zu verstehen, brechen Sie die IP-Adressen in vier numerische Teile auf. Die Adressen müssen nach dem ersten Teil, dann nach jedem Wert im ersten Teil, dann nach dem zweiten Teil usw. sortiert werden. Die Tabelle zeigt die einzelnen Teile in einer anderen Spalte, und da die Spalten einfache numerische Werte enthalten, können die Spalten in aufsteigender Reihenfolge von links nach rechts sortiert werden, wie in der folgenden Tabelle zu sehen ist.

PartI

TEILII

Aufzufordern

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 Sortieren der vier Teile getrennt 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. In der ersten berechneten Spalte befindet sich der erste numerische Teil der Adresse, in der zweiten berechneten Spalte der zweite numerische Teil der Adresse usw. Statt 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 IPAddresses, die die Datensätze in aufsteigender Reihenfolge von IP-Adressen anzeigt. Angenommen, die aktuelle Datenbank verfügt über eine Tabelle mit dem Namen MachineDetails, die ein Textfeld namens "IPAddress" enthält.

  1. Klicken Sie auf Erstellen > Abfrageentwurf. Hinweis: Wenn Sie Access 2007 verwenden, klicken Sie auf der Registerkarte Erstellen in der Gruppe andere auf Abfrageentwurf.

  2. Klicken Sie im Dialogfeld Tabelle anzeigen auf der Registerkarte Tabellen auf MachineDetails , und klicken Sie dann auf Hinzufügen. Schließen Sie das Dialogfeld.

  3. Ziehen Sie die Felder Machine-und IPAddress in den Abfrageentwurfsbereich.

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

    Überprüfen Sie jetzt 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. Wenn 1 subtrahiert wird (um den Zeitraum auszuschließen), wird die Anzahl der Ziffern im ersten Teil zurückgegeben. Anschließend verwenden Sie diese Zahl mit der left -Funktion, um die zahlreichen Zeichen aus dem Feld "IPAddress" beginnend mit dem linken Zeichen zu extrahieren. Abschließend 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. Diese Vorgehensweise ist nach jedem Zwischenschritt empfehlenswert.

  6. Fügen Sie die Spalte für den zweiten Adressteil hinzu. Geben Sie in der Spalte rechts von Parti den Wert 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 Zeitraum im Feld IPAddress befinden.

    Überprüfen Sie den Ausdruck erneut. Da Sie nicht wissen, wie viele Ziffern den zweiten Teil der Adresse bilden oder wo der zweite Teil genau 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, aber vor dem zweiten Punkt folgen. 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 von partii Folgendes ein : aufzufordern: Val (Mid ([IPAddress], InStr (InStr (1, [IPAddress], ".") + 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 Zeitraum im Feld IPAddress befinden.

    Überprüfen Sie den Ausdruck erneut. Da Sie nicht wissen, wie viele Ziffern den dritten Teil der Adresse bilden oder wie genau der dritte Teil beginnt (weil 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 Mid -Funktion, um die Zeichen zu extrahieren, die dem zweiten Zeitraum folgen, aber vor dem dritten Punkt liegen. 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 von aufzufordern Folgendes ein : PartIV: Val (Right ([IPAddress], Len ([IPAddress])-InStr (InStr (1, [IPAddress], ".") + 1, [IPAddress], ".") + 1, [IPAddress], "."))) in der Zeile Feld. Der Ausdruck gibt die Zeichen zurück, die dem letzten Punkt folgen.

    Überprüfen Sie den Ausdruck erneut. Der Schlüssel besteht darin, die Position des dritten Zeitraums zu ermitteln und dann alle Zeichen zu extrahieren, die ihm folgen. Da Sie nicht genau wissen, wo sich der dritte Zeitraum befindet, rufen Sie die InStr -Funktion dreimal auf, um die Position des dritten Zeitraums zu ermitteln. Anschließend verwenden Sie die len -Funktion, 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 Zahl der 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.

    Wichtig    Die Zeile Sortieren der Spalte IPAddress muss leer bleiben.

    Wenn Sie nach anderen Feldwerten sortieren möchten, platzieren Sie die Felder zusätzlich zu den Adressen entweder 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 aus dem Datenblatt auszublenden. Bevor Sie das tun, wechseln Sie zur DatenBlattansicht, um das Ergebnis der Ausdrücke in den berechneten Spalten anzuzeigen. Die folgende Tabelle zeigt die Spalten, die in der DatenBlattansicht angezeigt werden.

    Computer-Nr

    IPAddress

    PartI

    TEILII

    Aufzufordern

    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 Verwendungen für sortierte IP-Adressen

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

Wenn Sie Adressen ohne Schreiben von Code überprüfen möchten, können Sie dies in begrenztem Umfang tun, indem Sie die InputMask -Eigenschaft des Felds auf # # #.# # # # # # # # # # # # # # # # # # # # # # # #; 0; " " und die Format -Eigenschaft des Felds" IP-Adresse "für && & & & & & & & & & & aus.

Was macht das Eingabeformat? Wenn Sie mit der Eingabe im Feld Adresse beginnen, hindert Sie das Eingabeformat daran, andere Zeichen als Zahlen und Leerzeichen zwischen den drei Perioden einzugeben. 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 von einem oder mehreren Teilen der Adresse überspringt oder nur Leerzeichen anstelle eines numerischen Werts eingibt. Beispiel: "345.. 3. "wird als gültige Adresse akzeptiert.

Was macht das Anzeigeformat? Wenn Sie mit der Eingabe und dem Verlassen des Felds fertig sind, 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. Wenn Sie in die Adresse klicken oder F2 drücken (um in den Bearbeitungsmodus zu wechseln), wenn die Adresse ausgewählt ist, werden die Leerzeichen erneut angezeigt.

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

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, stützen Sie das neue Objekt auf eine Abfrage, die Adressen wie zuvor beschrieben sortiert, und nicht auf die Tabelle, in der die Adressen gespeichert sind.

Seitenanfang

Ihre Office-Fähigkeiten erweitern
Schulung erkunden
Neue Funktionen als Erster erhalten
An Office Insider teilnehmen

War diese Information hilfreich?

Vielen Dank für Ihr Feedback!

Vielen Dank für Ihr Feedback. Es klingt, als ob es hilfreich sein könnte, Sie mit einem unserer Office-Supportmitarbeiter zu verbinden.

×