Ez a témakör az internetes adatbázisokban tárolt IP-címek rendezési Access ismerteti.

Bevezetés

Ha IP-címekkel dolgozik, valószínűleg már tudja, hogy ez nem olyan egyszerű, mint a szöveggel vagy a számokkal való munka. Ennek az az oka, hogy az IP-címek valójában négy numerikus érték gyűjteménye, pontokkal (.) elválasztva, ahol minden érték 0 és 255 közötti szám. Az alábbi táblázatban adatokat mutatunk be a rendezési sorrend alkalmazása előtt.

MachineID

Alkalmazott

Hely

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

Az IP-címek Accessben való rendezése kihívást jelent, mert az Access nem biztosít speciális adattípust az IP-címek tárolásához. Bár az IP-címek csak számok gyűjteményei, az IP-címeket nem tárolhatja számmezőkben. Ennek az az oka, hogy egy numerikus mező csak egy tizedesvesszőt (.) támogat, míg az IP-címek három pontot (.) tartalmaznak. Ez azt jelenti, hogy a címeket szövegmezőben kell tárolnia.

Mivel az IP-címeket szövegmezőben tárolja, az Access beépített rendezési gombjaival nem rendezheti a címeket értelmes módon. A rendezési gombok mindig betűrendbe rendezik a szövegmezők értékeit, még akkor is, ha a karakterek számok. Más szóval a címeket az első számjegy, majd a második számjegy stb. szerint rendezi a rendszer, nem a címet tartalmazó számértékek szerint. Az alábbi táblázat az előző tábla IPAddress mezőjében betűrendbe rendezve jeleníti meg a címeket.

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

Az 1-et megelőző címek jelennek meg stb. előtt. Az alábbi táblázat a címeket a helyes növekvő sorrendben jeleníti meg.

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

A címek rendezésével kapcsolatos lépések könnyebb érthetőbbek, ha az IP-címeket négy számrészre lebontja. A címeket az első rész, majd az első rész minden egyes értéke, majd a második rész stb. szerint kell rendezni. A táblázat az egyes részeket egy másik oszlopban jeleníti meg, és mivel az oszlopok egyszerű numerikus értékeket tartalmaznak, az oszlopokat balról jobbra növekvő sorrendbe rendezheti, az alábbi táblázatban látható módon.

PartI

PartII

PartIII

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

Az IP-címek rendezése a négy rész külön rendezése. Az alábbi eljárásban létre kell hoznia egy lekérdezést, amely az IP-cím mezőn kívül négy számított oszlopot is tartalmaz, amelyekben minden oszlop a címértékek egy részét tárolja. Az első számított oszlop a cím első numerikus részét fogja tartani, a második számított oszlop pedig a cím második numerikus részét stb. A rekordok IPAddress mező szerint való rendezése helyett a lekérdezés a rekordokat a négy számított oszlop szerint rendezi.

A lekérdezés létrehozása

Létrehoz egy Sorted IPAddresses nevű választó lekérdezést, amely az IP-címek növekvő sorrendjében jeleníti meg a rekordokat. Tegyük fel, hogy az aktuális adatbázis tartalmaz egy MachineDetails nevű táblát, amely tartalmaz egy IPAddress nevű szövegmezőt.

  1. Kattintson a Lekérdezéstervező > gombra. 

  2. Válassza a Táblák hozzáadása(Tábla megjelenítése a Access 2013 ) lehetőséget, és húzza a Gépi adatok gombra a Tervező nézet felső szakaszához.

  3. Húzza a MachineID és az IPAddress mezőket a lekérdezés tervezőrácsára.

  4. Most már készen áll a számított oszlopok hozzáadására. A jobb oldali első üres oszlopba írja be a PartI: Val(Left([IPAddress],(InStr(1,[IPAddress],".") kifejezést. -1))) a Mező sorban. A kifejezés az első pont (.) előtt szereplő karaktereket adja eredményül. gombra az IPAddress mezőben.

    Most tekintse át a kifejezést. Mivel nem tudja, hogy hány számjegy teszi ki a cím első részét, az InStr függvény segítségével megkeresi az első pont helyét. Az 1 kivonása (a pont kizárása) az első rész számjegyének számát adja eredményül. Ezt a számot a Bal függvény segítségével kinyeri a bal szélső karaktertől kezdve az IPAddress mezőből. Végül a Val függvényt hívva számká alakítja a Bal függvény által visszaadott karaktereket. Ez az utolsó lépés azért szükséges, mert az alapul szolgáló adattípus a Szöveg.

  5. Mentse a lekérdezést a gyorselérési eszköztár Mentés gombjára kattintva. Ezt minden köztes lépés után el kell tetsszen.

  6. Adja hozzá a második címrész oszlopát. Az I. résztől jobbra lévő oszlopba írja be a PartII: Val(Mid([IPAddress],InStr(1,[IPAddress],".") +1,InStr(InStr(1;[IPAddress],".") +1,[IPAddress],".") -InStr(1;[IPAddress],".") -1)) a Mező sorban. A kifejezés az IPAddress mező első és második periódusa között található karaktereket adja eredményül.

    Ellenőrizze ismét a kifejezést. Mivel nem tudja, hogy hány számjegyből áll a cím második része, vagy hogy pontosan hol kezdődik a második rész (mert nem tudja, mennyi ideig tart az első rész), az InStr függvényt használva megkeresi a pontokat. Ezután a Mid függvény segítségével kinyerheti az első pont után, de a második pont előtt szereplő karaktereket. Végül a Val függvényt hívva számká alakítja a Mid függvény által visszaadott karaktereket. Ez az utolsó lépés azért szükséges, mert az alapul szolgáló adattípus a Szöveg.

  7. Adja hozzá a harmadik címrész oszlopát. Az III. résztől jobbra lévő oszlopba írja be a PartIII: 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)) a Mező sorban. A kifejezés az IPAddress mező második és harmadik periódusa között található karaktereket adja eredményül.

    Ellenőrizze ismét a kifejezést. Mivel nem tudja, hogy hány számjegy teszi ki a cím harmadik részét, vagy hogy pontosan hol kezdődik a harmadik rész (mert nem tudja, hogy az első és a második rész mennyi ideig tart), az InStr függvény segítségével megkeresi a periódusok helyét. Ezután a Mid függvény segítségével kinyerheti a második pont után, de a harmadik pont előtt szereplő karaktereket. Végül a Val függvényt hívva számká alakítja a Mid függvény által visszaadott karaktereket. Ez az utolsó lépés azért szükséges, mert az alapul szolgáló adattípus a Szöveg.

  8. Vegye fel a negyedik és az utolsó cím részét tartalmazó oszlopot. A PartIIII rész jobb oldali oszlopába írja be a partIV: Val(Right([IPAddress],Len([IPAddress])-InStr(InStr(InStr(1;[IPAddress],".") +1,[IPAddress],".") +1,[IPAddress],"."))) gombra a Mező sorban. A kifejezés az utolsó pont után következő karaktereket adja eredményül.

    Ellenőrizze ismét a kifejezést. A kulcs az, hogy megkeresi a harmadik pont helyét, majd kinyeri az azt követő összes karaktert. Mivel nem tudja pontosan, hogy hol található a harmadik időszak, háromszor hívja fel az InStr függvényt, hogy megtalálja a harmadik pont helyét. Ezután a Len függvényt használhatja a negyedik rész számjegyszámának kiszámítására. A visszaadott számjegyek száma a Right függvény segítségével kinyeri az IPAddress mező jobb részében szereplő ennyi karaktert. Végül a Val függvényt hívva számká alakítja a Mid függvény által visszaadott karaktereket. Ez az utolsó lépés azért szükséges, mert az alapul szolgáló adattípus a Szöveg.

  9. Állítsa mind a négy számított oszlop Rendezés sorát Növekvőre.

    Fontos    Az IPAddress oszlop Rendezés sorát üresen kell hagyni.

    Ha a címeket is más mezőértékek szerint szeretné rendezni, a mezőket mind a négy számított oszloptól balra, mind jobbra helyezzeel. A többi rendezési mezőt ne helyezze a számított oszlopok közé.

  10. A következő lépés a négy számított oszlop elrejtése az adatlapról. Előtte azonban váltson Adatlap nézetre a számított oszlopokban lévő kifejezések eredményének megtekintéséhez. Az alábbi táblázatban az Adatlap nézetben látható oszlopok láthatók.

    MachineID

    IPAddress

    PartI

    PartII

    PartIII

    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. Váltson vissza Tervező nézetre, és törölje a jelölést a Mind a négy számított oszlop Megjelenítése sorában lévő jelölőnégyzetből. Ez megakadályozza, hogy a számított oszlopok Adatlap nézetben is megjelenítsen.

  12. Ha szükséges, adja meg a rekordok lekérdezésből való kizárásának feltételét.

  13. A rekordok rendezve való megtekintéséhez váltson Adatlap nézetre. A rekordok helyesen, az IP-címek növekvő sorrendben vannak rendezve.

További felhasználási módok a rendezett IP-címekhez

IP-címek érvényesítése adatbevitel közben

Ha kód írása nélkül szeretné érvényesíteni a címeket, ezt a mező InputMask tulajdonságának ### .##.##;0#értékre való beállításával korlátozottmértékig használhatja. " és a formázni kívánt IP-cím mező Format&&&&&&&&&&&&.

Mire jó a beviteli maszk? Amikor elkezd gépelni a címmezőbe, a beviteli maszk megakadályozza, hogy a számoktól és szóközöktől különböző karaktereket is beírhasson a három pont közé. Ha a numerikus rész egy kétjegyű szám, hagyja üresen a harmadik számjegyet, vagy írjon be egy szóközt. Vegye figyelembe, hogy ez a beviteli maszk nem figyelmezteti a felhasználót, ha kihagyja a cím egy vagy több részét, vagy csak szóközöket ír be numerikus érték helyett. Például: "345. .3. " érvényes címként fogadható el.

Mire jó a megjelenítési formátum? Amikor befejezi a beírást, és elhagyja a mezőt, a megjelenítési formátum eltávolítja a címben található szóközöket, és csak a számokat és pontokat jeleníti meg. Ha tehát a "354.35 .2 .12" címet írja be, a cím "354.35.2.12" ként jelenik meg. Ne feledje, hogy ha a cím kiválasztásakor a cím belsejébe kattint, vagy lenyomja az F2 billentyűt (a szerkesztési módba való belépéshez), a szóközök ismét megjelennek.

Tipp: Ha címet szeretne másolni, lépjen az előző oszlopra vagy vezérlőelemre, a TAB billentyűt lenyomva jelölje ki a formázott címet, majd kattintson a Másolás gombra. Ezzel nem másolja a szóközöket tartalmazó cím karakterláncot.

Rekordok rendezése egy űrlapon vagy jelentésben IP-címek szerint

Ha olyan űrlapot vagy jelentést kell létrehoznia, amelyben a rekordok IP-címek szerint vannak rendezve, az új objektumot egy olyan lekérdezésre alapozhatja, amely a címeket a korábban ismertetett módon rendezi, nem pedig a címeket tároló táblára.

Vissza a lap tetejére

További segítségre van szüksége?

Ismeretek bővítése
Oktatóanyagok megismerése
Új szolgáltatások listájának lekérése
Csatlakozás a Microsoft Insiderek

Hasznos volt az információ?

Mennyire elégedett a fordítás minőségével?
Mi befolyásolta a felhasználói élményét?

Köszönjük visszajelzését!

×