V tej temi je opisan postopek za razvrščanje naslovov IP, shranjenih v zbirki Access podatkov.
Uvod
Če delate z naslovi IP, verjetno že veste, da ni tako preprosto kot delo z besedilom ali številkami. Naslov IP je pravzaprav zbirka štirih številskih vrednosti, ločenih s piko (.), kjer je vsaka vrednost število med 0 in 255. V spodnji tabeli so prikazani podatki, preden uporabite kateri koli vrstni red.
ID računalnika |
Delojemalec |
Mesto |
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 |
Razvrščanje naslovov IP v Accessu je izziv, ker Access ne zagotavlja posebnega podatkovnega tipa za shranjevanje naslovov IP. Čeprav je naslov IP le zbirka številk, naslovov IP ne morete shraniti v številsko polje. To je zato, ker številsko polje podpira le eno decimalno vejico (.), medtem ko naslov IP vsebuje tri pike (.). To pomeni, da morate naslove shraniti v polje z besedilom.
Ker naslove IP shranite v polje z besedilom, ne morete uporabiti vgrajenih gumbov za razvrščanje v Accessu za smiselno razvrščanje naslovov. Gumbi za razvrščanje vedno razvrščajo vrednosti v polju z besedilom po abecednem vrstnem redu, tudi če so znaki številke. Z drugimi besedami, naslovi so razvrščeni po prvi števki, nato po drugi števki in tako naprej, namesto po številskih vrednostih, ki pišejo naslov. V spodnji tabeli so prikazani naslovi iz prejšnje tabele, razvrščeni po abecednem vrstnem redu v polju IPAddress.
ID računalnika |
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 |
Naslovi, ki se začnejo z 1, so prikazani pred naslovi, ki se začnejo z 2 in tako naprej. V spodnji tabeli so prikazani naslovi v pravilnem naraščajočem vrstnem redu.
ID računalnika |
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 |
Če želite poenostaviti razumevanje korakov, vključenih v razvrščanje teh naslovov, razdelite naslove IP na štiri številske dele. Naslovi morajo biti razvrščeni po prvem delu, nato pa za vsako vrednost v prvem delu, nato po drugem delu in tako naprej. V tabeli je prikazan vsak del v drugem stolpcu in ker so v stolpcih preproste številske vrednosti, je mogoče stolpce od leve proti desni razvrstiti v naraščajočem vrstnem redu, kot je prikazano v spodnji tabeli.
PartI (PartI) |
PartII (PartII) |
PartiII (PartII) |
PartIV (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 |
Razvrščanje štirih delov posebej je trik pri razvrščanju naslovov IP. V postopku, ki sledi, ustvarite poizvedbo, ki poleg polja z naslovom IP vključuje štiri izračunane stolpce, v katerih so v vsakem stolpcu shranjeni del vrednosti naslova. V prvem izračunanem stolpcu bo prvi številski del naslova, drugi izračunani stolpec pa bo držal drugi številski del naslova in tako naprej. Namesto razvrščanja zapisov po polju IPAddress, poizvedba razvrsti zapise po štirih izračunanih stolpcih.
Ustvarjanje poizvedbe
Ustvarili boste poizvedbo za izbiranje z imenom Razvrščene naslove IPAddresses, ki prikaže zapise v naraščajočem vrstnem redu naslovov IP. Recimo, da trenutna zbirka podatkov vsebuje tabelo z imenom »MachineDetails«, ki vključuje polje z besedilom z imenom »IPAddress«.
-
Kliknite Ustvari > poizvedbo.
-
Izberite Dodaj tabele (Pokaži tabelo v Accessu) in povlecite podrobnosti o računalniku v zgornji razdelek pogleda načrta.
-
Povlecite polji MachineID in IPAddress v mrežo načrta poizvedbe.
-
Zdaj lahko dodate izračunane stolpce. V prvi prazen stolpec na desni vnesite izraz PartI: Val(Left([IPAddress],(InStr(1,[IPAddress],".") -1))) vvrstici Polje. Izraz vrne znake pred prvim obdobjem (.) v polju IPAddress.
Preglejte izraz. Ker ne veste, koliko števk je prvi del naslova, uporabite funkcijo InStr , da poiščete položaj prvega obdobja. Odštevanje 1 (da izključi piko) vrne število števk v prvem delu. Nato uporabite to število s funkcijo Left , da izvlečete toliko znakov, z začetkom pri skrajno levem znaku, iz polja IPAddress. Na koncu pokličete funkcijo Val , da pretvorite znake, ki jih vrne funkcija Left , v število. Ta zadnji korak je potreben, ker je temeljni podatkovni tip »Besedilo«.
-
Shranite poizvedbo tako, da v orodni vrstici za hitri dostop kliknete Shrani. Priporočamo, da to naredite po vsakem vmesnem koraku.
-
Dodajte stolpec za drugi del naslova. V stolpec desno od partI vnesite PartI: Val(Mid([IPAddress],InStr(1,[IPAddress],".") +1;InStr(InStr(1; [IPAddress];".") +1;[IPAddress],".") -InStr(1, [IPAddress],".") -1)) v vrstici Polje . Izraz vrne znake, ki so med prvim in drugim obdobji v polju IPAddress.
Znova preglejte izraz. Ker ne veste, koliko števk je drugega dela naslova ali kje točno se začne drugi del (ker ne veste, koliko časa je prvi del), lahko s funkcijo InStr poiščete mesta obdobij. Nato uporabite funkcijo Mid, da izvlečete znake, ki sledijo prvemu obdobju, vendar pred drugim obdobjem. Na koncu pokličete funkcijo Val , da pretvorite znake, ki jih vrne funkcija Mid , v število. Ta zadnji korak je potreben, ker je temeljni podatkovni tip »Besedilo«.
-
Dodajte stolpec za tretji del naslova. V stolpec desno od partII vnesite PartII: 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)) v vrstici Polje . Izraz vrne znake, ki so med drugim in tretjim presledkom v polju IPAddress.
Znova preglejte izraz. Ker ne veste, koliko števk je tretji del naslova ali kje točno se začne tretji del (ker ne veste, koliko časa sta prva in druga dela), lahko s funkcijo InStr poiščete mesta obdobij. Nato uporabite funkcijo Mid, da izvlečete znake, ki sledijo drugemu obdobju, vendar pred tretjim obdobjem. Na koncu pokličete funkcijo Val , da pretvorite znake, ki jih vrne funkcija Mid , v število. Ta zadnji korak je potreben, ker je temeljni podatkovni tip »Besedilo«.
-
Dodajte stolpec za četrti in končni del naslova. V stolpec desno od partIII vnesite PartIV: Val(Right([IPAddress],Len([IPAddress])-InStr(InStr(InStr(1,[IPAddress],".") +1;[IPAddress],".") +1;[IPAddress],"."))) v vrstici Polje . Izraz vrne znake, ki sledijo zadnjemu obdobju.
Znova preglejte izraz. Ključno je, da poiščete mesto tretjega obdobja in nato izvlečete vse znake, ki sledijo. Ker ne veste točno, kje je tretje obdobje, trikrat priklicajte funkcijo InStr , da poiščete položaj tretjega obdobja. Nato s funkcijo Len izračunate število števk v četrtem delu. Število vrnjenih števk se nato uporabi s funkcijo Right za izvlečenje toliko znakov iz desnega dela polja IPAddress. Na koncu pokličete funkcijo Val , da pretvorite znake, ki jih vrne funkcija Mid , v število. Ta zadnji korak je potreben, ker je temeljni podatkovni tip »Besedilo«.
-
Vrstico Razvrsti vseh štirih izračunanih stolpcev nastavite na Naraščajoče.
Pomembno Vrstica Razvrsti stolpca IPAddress mora biti prazna.
Če želite poleg naslovov razvrščati po drugih vrednostih polj, postavite polja levo ali desno od vseh štirih izračunanih stolpcev. Drugih polj za razvrščanje ne postavite med izračunane stolpce.
-
V naslednjem koraku skrijete štiri izračunane stolpce v podatkovnem listu. Preden pa to naredite, preklopite v pogled podatkovnega lista, da si ogledate rezultat izrazov v izračunanih stolpcih. V spodnji tabeli so prikazani stolpci, ki bodo prikazani v pogledu podatkovnega lista.
ID računalnika
IpAddress
PartI (PartI)
PartII (PartII)
PartiII (PartII)
PartIV (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
-
Preklopite nazaj v pogled načrta in počistite potrditveno polje v vrstici Pokaži vseh štirih izračunanih stolpcev. Tako preprečite prikaz izračunanih stolpcev v pogledu podatkovnega lista.
-
Po želji lahko določite pogoje za izključitev zapisov iz poizvedbe.
-
Če si želite ogledati zapise v razvrščenem vrstnem redu, preklopite v pogled podatkovnega lista. Zapisi bodo pravilno razvrščeni v naraščajočem vrstnem redu naslovov IP.
Več uporabe za razvrščene naslove IP
Preverjanje veljavnosti naslovov IP med vnosom podatkov
Če želite preveriti naslove brez pisanja kode, lahko to naredite v omejenem obsegu tako, da nastavite lastnost InputMask polja na ###.###.###.####; 0;" « in lastnost »Oblika « polja »Naslov IP« za &&&&&&&&&&&&.
Kaj naredi vnosna maska? Ko začnete vnašati besedilo v polje z naslovom, vnosna maska preprečuje vnašanje znakov, ki niso številke in presledki med tremi obdobji. Če je številski del dvomestna številka, pustite tretjo števko prazno ali namesto tega vnesite presledek. Upoštevajte, da ta vnosna maska uporabnika ne opozori, če preskoči vnos enega ali več delov naslova ali vtipka le presledke namesto številske vrednosti. Na primer »345. .3. " bi bilo sprejeto kot veljaven naslov.
Kaj je oblika prikaza? Ko končate vnos in zapustite polje, oblika prikaza odstrani presledke v naslovu in prikaže le številke in pike. Če ste torej vnesli »354.35 .2 .12«, je naslov prikazan kot »354.35.2.12«. Če kliknete v naslov ali pritisnete F2 (za vstop v način urejanja), ko je naslov izbran, se presledki znova pojavijo.
Namig: Če želite kopirati naslov, se premaknite v prejšnji stolpec ali kontrolnik, pritisnite tipko TAB, da izberete oblikovani naslov, in nato kliknite Kopiraj. Tako ne boste kopirali naslovnega niza, ki vsebuje presledke.
Razvrščanje zapisov v obrazcu ali poročilu po naslovih IP
Če želite ustvariti obrazec ali poročilo, v katerem so zapisi razvrščeni po naslovih IP, ustvarite nov predmet na poizvedbi, ki naslove razvrsti po opisu, namesto v tabeli, v kateri so shranjeni naslovi.