IP-aadresside sortimine

Selles teemas kirjeldatakse rakenduse Microsoft Office Access 2007 andmebaasis talletatud IP-aadresside sortimist.

Selle artikli teemad

Sissejuhatus

Päringu loomine

Sorditud IP-aadresside täiendavad kasutusvõimalused

Sissejuhatus

Kui töötate IP-aadressidega, siis ilmselt juba teate, et see pole nii lihtne, kui teksti või arvudega töötamine. Keerukus seisneb selles, et IP-aadress on sisuliselt nelja, punktiga (.) eraldatud arvväärtuse kogum, kus iga väärtus võib olla vahemikus 0–255. Järgmises tabelis on andmed enne sortimisjärjestuse rakendamist.

Seadme_ID

Töötaja

Asukoht

IP-aadress

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


IP-aadresside sortimine Accessis on keerukas toiming, kuna Accessis pole IP-aadresside talletamiseks eraldi andmetüüpi. Kuigi IP-aadress on lihtsalt arvude kogum, ei saa seda arvuväljal talletada. Seda seetõttu, et arvuväli toetab vaid ühte punkti (.), kuid IP-aadress sisaldab kolme punkti. Seega tuleb aadressid talletada tekstiväljal.

Kuna IP-aadressid on tekstiväljal, ei saa nende mõtestatud sortimiseks kasutada Accessi sisseehitatud sortimisnuppe. Sortimisnupud sordivad tekstivälja väärtused alati tähestikjärjestuses, ka siis, kui märkideks on numbrid. Teisisõnu sorditakse aadressid esimese numbri alusel, siis teise numbri alusel jne, aga mitte nende arvuliste väärtuste alusel, millest aadressid koosnevad. Järgmises tabelis on eelmise tabeli aadressid sorditud välja IP-aadress alusel tähestikulises järjestuses.

Seadme_ID

IP-aadress

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


Aadressid, mis algavad numbriga 1, kuvatakse enne numbriga 2 algavaid aadresse jne. Järgmises tabelis on aadressid õiges tõusvas järjestuses.

Seadme_ID

IP-aadress

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


Et saaksite aadresside sortimise toimingust paremini aru, jagage IP-aadressid neljaks arvuliseks osaks. Aadressid tuleb sortida esimese osa alusel, siis esimese osa väärtuste alusel, siis teise osa alusel jne. Järgmises tabelis on iga osa kuvatud erinevas veerus ning kuna igas veerus on tavalised arvulised väärtused, saab veerge sortida vasakult paremale tõusvas järjestuses, nagu järgmises tabelis näidatud.

I_osa

II_osa

III_osa

IV_osa

1

198

3

93

32

183

93

40

104

30

244

2

104

244

4

1

104

244

253

29

123

4

245

23


Nende nelja osa eraldi sortimises seisnebki IP-aadresside sortimine. Järgnevas toimingus saate luua päringu, milles sisalduvad lisaks IP-aadressi väljale ka neli arvutatud veergu, kus igas veerus talletatakse osa aadresside väärtustest. Esimeses arvutatud veerus on aadresside esimene arvuline osa, teises teine jne. Selle asemel, et sortida kirjeid IP-aadressi välja alusel, sordib päring kirjed nende nelja arvutatud veeru alusel.

Lehe algusesse

Päringu loomine

Järgmiste juhiste abil saate luua valikupäringu nimega Sorditud IP-aadressid, mis kuvab kirjed IP-aadresside tõusvas järjestuses. Oletame, et praegu avatud andmebaasis on tabel nimega Seadme_üksikasjad, milles on tekstiväli nimega IP-aadress.

  1. Klõpsake menüü Loo jaotises Muu nuppu Päringukujundus.

  2. Klõpsake dialoogiboksis Tabeli kuvamine vahekaarti Tabelid, klõpsake tabelit Seadme_üksikasjad ja siis nuppu Lisa. Sulgege dialoogiboks.

  3. Lohistage väljad SeadmeID ja IP-aadress päringu kujundusruudustikku.

  4. Nüüd saate lisada arvutatud veerud. Tippige paremalt esimese tühja veeru reale Väli avaldis I_osa: Val(Left([IP-aadress],(InStr(1,[IP-aadress],".")-1))). See avaldis tagastab väljal IP-aadress enne esimest punkti (.) olevad märgid.

    Vaadake nüüd avaldis läbi. Kuna pole kindel, mitmest numbrist aadressi esimene osa koosneb, kasutage esimese punkti asukoha leidmiseks funktsiooni InStr. Lahutades tulemusest ühe (punkti väljajätmiseks), tagastatakse esimese osa numbrite arv. Seejärel kasutage seda arvu funktsioonis Left, et tuua väljalt IP-aadress nii palju märke, alustades kõige vasakpoolsemast. Lõpuks kutsuge esile funktsioon Val, et teisendada funktsiooni Left tagastatud märgid arvuks. See viimane toiming on vajalik, kuna põhiandmetüübiks on Tekst.

  5. Salvestage päring. Selleks klõpsake kiirpääsuriba nuppu Salvesta. Kindlasti tasub päring salvestada iga tehtud toimingu järel.

  6. Lisage aadressi teise osa veerg. Tippige veerust I_osa paremal oleva veeru reale Väli avaldis II_osa: Val(Mid([IP-aadress],InStr(1,[IP-aadress],".")+1,InStr(InStr(1,[IP-aadress],".")+1,[IP-aadress],".")-InStr(1,[IP-aadress],".")-1)). See avaldis tagastab väljal IP-aadress esimese ja teise punkti vahel olevad märgid.

    Vaadake jälle avaldis läbi. Kuna pole kindel, mitmest numbrist aadressi teine osa koosneb või kust see algab (sest pole teada, kui pikk on esimene osa), kasutage punktide asukohtade leidmiseks funktsiooni InStr. Seejärel kasutage esimese ja teise punkti vaheliste märkide toomiseks funktsiooni Mid. Lõpuks kutsuge esile funktsioon Val, et teisendada funktsiooni Mid tagastatud märgid arvuks. See viimane toiming on vajalik, kuna põhiandmetüübiks on Tekst.

  7. Lisage aadressi kolmanda osa veerg. Tippige veerust II_osa paremal oleva veeru reale Väli avaldis III_osa: Val(Mid([IP-aadress],InStr(InStr(1,[IP-aadress],".")+1,[IP-aadress],".")+1,InStr(InStr(InStr(1,[IP-aadress],".")+1,[IP-aadress],".")+1,[IP-aadress],".")-InStr(InStr(1,[IP-aadress],".")+1,[IP-aadress],".")-1)). See avaldis tagastab väljal IP-aadress teise ja kolmanda punkti vahel olevad märgid.

    Vaadake jälle avaldis läbi. Kuna pole kindel, mitmest numbrist aadressi kolmas osa koosneb või kust see algab (sest pole teada, kui pikk on esimene või teine osa), kasutage punktide asukohtade leidmiseks funktsiooni InStr. Seejärel kasutage teise ja kolmanda punkti vaheliste märkide toomiseks funktsiooni Mid. Lõpuks kutsuge esile funktsioon Val, et teisendada funktsiooni Mid tagastatud märgid arvuks. See viimane toiming on vajalik, kuna põhiandmetüübiks on Tekst.

  8. Lisage aadressi neljanda ja ühtlasi viimase osa veerg. Tippige veerust III_osa paremal oleva veeru reale Väli avaldis IV_osa: Val(Right([IP-aadress],Len([IP-aadress])-InStr(InStr(InStr(1,[IP-aadress],".")+1,[IP-aadress],".")+1,[IP-aadress],"."))). See avaldis tagastab märgid, mis järgnevad viimasele punktile.

    Vaadake jälle avaldis läbi. Avaldise eesmärk on leida kolmanda punkti asukoht ja tuua siis kõik sellele järgnevad märgid. Kuna viimase punkti asukoht pole täpselt teada, kutsuge kolmanda punkti asukoha leidmiseks kolm korda esile funktsioon InStr. Seejärel kasutage neljanda osa märkide arvu leidmiseks funktsiooni Len. Seejärel kasutate selle funktsiooni tagastatud numbrite arvu funktsioonis Right, et tuua välja IP-aadressi kõige parempoolsemast osast nii palju märke. Lõpuks kutsuge esile funktsioon Val, et teisendada funktsiooni Mid tagastatud märgid arvuks. See viimane toiming on vajalik, kuna põhiandmetüübiks on Tekst.

  9. Seadke kõigi nelja arvutatud veeru rea Sordi väärtuseks Tõusev järjestus.

    NB!    Veeru IP-aadress rida Sordi tuleb jätta tühjaks.

    Kui soovite lisaks IP-aadressidele sortida ka muude väljade väärtuste järgi, paigutage need väljad kõigist neljast arvutatud veerust paremale või vasakule. Ärge paigutage muid sortimisvälju arvutatud veergude vahele.

  10. Järgmiseks tuleb arvutatud veerud andmelehel peita. Enne seda aktiveerige arvutatud veergude avaldiste tulemi nägemiseks andmelehevaade. Järgnevas tabelis on veerud, mida andmelehevaates näete.

Seadme_ID

IP-aadress

I_osa

II_osa

III_osa

IV_osa

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

  1. Aktiveerige kujundusvaade uuesti ja tühjendage kõigi nelja arvutatud veeru ruut Kuva. Sellega takistate arvutatud veergude kuvamise andmelehevaates.

  2. Soovi korral võite määratleda kriteeriumid kirjete päringust eemaldamiseks.

  3. Kirjete sorditud järjestuse nägemiseks aktiveerige andmelehevaade. Kuvatavad kirjed on IP-aadresside järgi õigesti sorditud.

Lehe algusesse

Sorditud IP-aadresside täiendavad kasutusvõimalused

IP-aadresside kontrollimine andmesisestusel

Kui soovite aadresse kontrollida selleks koodi kirjutamata, saate seda piiratud ulatuses teha ka siis, kui seate välja atribuudi Sisestusmask väärtuseks ###.###.###.###;0;" " ja IP-aadressi välja atribuudi Vorming väärtuseks &&&&&&&&&&&&.

Mida sisestusmask teeb? Kui alustate aadressiväljale tippimist, lubab sisestusmask kolme punkti vahele tippida ainult numbreid ja tühikuid. Kui arvuline osa koosneb kahest numbrist, jätke kolmas koht tühjaks või tippige tühik. Sisestusmask ei hoiata kasutajat, kui mõni aadressi osa vahele jäetakse või arvulise väärtuse asemel tipitakse ainult tühikud. Näiteks "345. .3. " arvestatakse kehtiva aadressina.

Mida teeb kuvamisvorming? Kui olete tippimise lõpetanud ja lahkute väljalt, eemaldab kuvamisvorming aadressist tühikud ja kuvab ainult numbrid ja punktid. Kui tippisite "354.35 .2 .12 ", kuvatakse aadress kujul "354.35.2.12". Kui aadress on valitud, siis kuvatakse selle klõpsamisel või klahvi F2 vajutamisel (redigeerimisrežiimi aktiveerimiseks) tühikud uuesti.

Näpunäide. : Aadressi kopeerimiseks liikuge eelmisele veerule või juhtelemendile ja vajutage vormindatud aadressi valimiseks tabeldusklahvi (TAB) ning klõpsake siis nuppu Kopeeri. Nii kopeerite aadressistringi, mis tühikuid ei sisalda.

Vormi või aruande kirjete sortimine IP-aadresside alusel

Kui teil on vaja luua selline vorm või aruanne, mille kirjed on IP-aadresside alusel sorditud, kasutage uue objekti aluseks sellist päringut, mis sordib aadresse nii, nagu ülalpool kirjeldatud, mitte tabelit, kus aadressid on talletatud.

Lehe algusesse

Täiendage oma oskusi
Tutvuge koolitusmaterjalidega
Kasutage uusi funktsioone enne teisi
Liituge Office Insideri programmiga

Kas sellest teabest oli abi?

Täname tagasiside eest!

Täname tagasiside eest! Tundub, et võiksime teid kokku viia ühega meie Office'i tugiagentidest, kes aitab teil probleemi lahendada.

×