norbertkn
Goto Top

Access 2016 - Ip Adressen sortieren

Hallo zusammen,

ich habe mal eine Frage.
In einer Tabelle sollen Ip Adressen erfasst werden.
Format:
10.12.0.0
10.12.0.1

beim Sortieren bekomme ich dies Problem:

10.12.0.214
10.12.0.215
10.12.0.216
10.12.0.24
10.12.0.26
10.12.0.27

gibt es eine Möglichkeit Ip Adressen so zu formatieren das die richtige Reihenfolge eingehalten wird (aufsteigend) ?

Vielen Dank schon mal

Gruß
Norbert

Content-ID: 328826

Url: https://administrator.de/contentid/328826

Ausgedruckt am: 22.11.2024 um 20:11 Uhr

PernoxIT
PernoxIT 08.02.2017 um 15:27:02 Uhr
Goto Top
Das sollte doch über die Standard Zahlen Sortiermethode funktionieren oder nicht? Einfach die Spalte anwählen in der die IP-Adressen stehen und dann über die Funktion "Sortieren von kleinstem Wert zu größtem Wert" auswählen.
NorbertKn
NorbertKn 08.02.2017 um 15:35:52 Uhr
Goto Top
Problem ist das die IP keine Zahl ist - sie enthält Punkte
wiesi200
wiesi200 08.02.2017 um 15:39:24 Uhr
Goto Top
Hallo,

das Problem ist das es ein Textfeld ist das von link nach rechts wert für Wert sortiert wird.
Entweder du schreibst die IP Adressen pro Byte 3 Stellig.
Sprich '010.012.0.024'

Oder du verwendest für jedes Byte eine eigene Spalte und verwendest dann als ein Zahlenformat für die Werte. Sprich du Arbeitest mit 4 Integer Spalten.
em-pie
em-pie 08.02.2017 aktualisiert um 15:43:34 Uhr
Goto Top
Moin,

Die Frage ist ja u.A., von welchem Datentyp das IP-Feld ist...

Ich nehme an, als CHAR() bzw. VARCHAR().
Dann ist deine als falsch deklarierte Sortierung völlig richtig,
denn 21(4) kommt nunmal vor 24..

Spannend wird es, wenn du IPs in Form von
10.12.0.1
10.12.0.2
10.12.0.3
...
10.12.0.11
10.12.0.12
10.12.0.13
..
10.12.0.21
10.12.0.22
10.12.0.23
..
hast, denn dann wird wie folgt sortiert
10.12.0.1
10.12.0.11
10.12.0.12
10.12.0.13
...
10.12.0.2
10.12.0.21
10.12.0.22
10.12.0.23
...
10.12.0.3


Als Zahl wirst du es vermutlich etwas leichter haben.
In Excel gebe ich immer ein Zahlenformat vor
"10.12."000"."000 denn dann füllt Excel die fehlenden Stellen mit 0; das Bedeutet aber auch, dass die Anwender nur 10 für die 10.12.0.010 eintragen müssen. Dann klappt auch die Sortierung. Liest sich aber auch besch...

Was denkbar wäre (aber nicht die goldene Lösung sein muss/ wird):
Für jedes Segment ein eigenes Datenfeld (Int) vorsehen und am Ende von vorne nach hinten sortieren und als zusammengesetztes Feld dann in den Reports darstellen.

Ggf. lässt sich aber auch irgendwas mit VB deichseln (hier wäre ich dann aber überfragt)....

Gruß
em-pie
Pjordorf
Pjordorf 08.02.2017 um 15:49:17 Uhr
Goto Top
Hallo,

Zitat von @NorbertKn:
beim Sortieren bekomme ich dies Problem:
Nö, das ist vollkommen korrekt. Du hast ja keine Zahlen welche du sortieren willst. Du hast Text u d da ist die Sortierung dann richtig. Eine Zahl hat (hier in DE) nur ein Dezimaltrennzeichen keine 4. Teile dein IP in 4 Spalten, dann kannst du die korrekt als Zahl Sortieren und in der Ausgabe wieder zusammen setzen und mit ein Punkt dazwischen versehen. Oder Du schreibst deine IPs als Zahl ohne Trennzeichen, nur dann wirst du Teils bis zu 3 Nullen pro Oktet einfügen müssen z.B. die IP 1.1.1. ist nicht gleich einer 1111. Da wäre eine 1001001001 korrekt, d.h. die Wertigkeit jedes Oktets muss erhalten bleiben. Dann wäre eine 001001001001 eben auch die IP 1.1.1.1. Aber Zahlen haben selten bzw. keine vorhergehenden Nullen. odr schreibst du immer 000000000000000000000000000000000000000000000000000000000001 wenn du nur ein 1 hast:-?


10012000214
10012000215
10012000216
10012000024
10012000026
10012000027

Lässt Zahlenmässig Sortieren sofern du auch weisst das es ein 10. vorneweg hat und kein 100. Nur bei einer Zahl 01001200014 wird die führende Null immer weggemacht face-smile, bei Text aber nicht.

Das Problem ist nicht Access, es ist dein Verständniss von Zahlen und Buchstaben und wie diese uns Menschen dargestellt wird. Ein Mensch kann das schon erkennen, einen Computer musst du schon sagen was du willst.

Gruß,
Peter