Tässä ohjeaiheessa kuvataan Access tietokantaan tallennettujen IP-osoitteiden lajitteluohjeet.
Johdanto
Jos käytät IP-osoitteita, tiedät luultavasti jo, että se ei ole yhtä yksinkertaista kuin tekstin tai numeroiden käsitteleminen. Tämä johtuu siitä, että IP-osoite on oikeastaan neljän numeerisen arvon kokoelma, joka on erotettu pisteellä (.), jossa kukin arvo on luku väliltä 0–255. Seuraavassa taulukossa näkyvät tiedot ennen lajittelujärjestyksen käyttämistä.
MachineID |
Työntekijä |
Sijainti |
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 |
IP-osoitteiden lajitteleminen Accessissa on haastavaa, koska Access ei tarjoa erityistä tietotyyppiä IP-osoitteiden tallentamista varten. Vaikka IP-osoite on vain joukko numeroita, et voi tallentaa IP-osoitteita numeerisen kentän sisään. Tämä johtuu siitä, että numeerinen kenttä tukee vain yhtä desimaalipilkkua (.), kun taas IP-osoite sisältää kolme pistettä (.). Tämä tarkoittaa, että osoitteet on tallennettava tekstikenttään.
Koska tallennat IP-osoitteet tekstikenttään, et voi käyttää Accessin valmiita lajittelupainikkeita osoitteiden lajittelemiseen mielekkäällä tavalla. Lajittelupainikkeet lajittelevat tekstikentän arvot aina aakkosjärjestykseen, vaikka merkit ovat numeroita. Toisin sanoen osoitteet lajitellaan ensimmäisen numeron mukaan, sitten toisen numeron mukaan ja niin edelleen osoitteen muodostavien numeeristen arvojen sijaan. Seuraavassa taulukossa näkyvät edellisen taulukon osoitteet aakkosjärjestyksessä IPAddress-kentässä.
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 |
Osoitteet, joiden alussa on 1, näkyvät ennen osoitteita, joiden alussa on 2 ja niin edelleen. Seuraavassa taulukossa osoitteet näkyvät oikeassa nousevassa järjestyksessä.
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 |
Jotta ymmärtäisit paremmin näiden osoitteiden lajitteluun liittyvät vaiheet, jaa IP-osoitteet neljään numeeriseen osaan. Osoitteet on lajiteltava ensimmäisen osan mukaan, sitten ensimmäisen osan kullekin arvolle, sitten toisen osan mukaan ja niin edelleen. Taulukko näyttää kunkin osan eri sarakkeessa, ja koska sarakkeissa on yksinkertaisia numeerisia arvoja, sarakkeet voidaan lajitella vasemmalta oikealle nousevassa järjestyksessä seuraavassa taulukossa esitetyllä tavalla.
Parti |
OsaII |
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 |
Neljän osan lajitteleminen erikseen on IP-osoitteiden lajittelun temppu. Seuraavassa toimenpiteessä luodaan kysely, joka SISÄLTÄÄ IP-osoitekentän lisäksi neljä laskettua saraketta, joihin kukin sarake tallentaa osan osoitearvoista. Ensimmäisessä lasketussa sarakkeessa on osoitteen ensimmäinen numeerinen osa, toisessa lasketussa sarakkeessa on osoitteen toinen numeerinen osa ja niin edelleen. Sen sijaan, että kysely lajittelisi tietueet IPAddress-kentän mukaan, se lajittelee tietueet neljän lasketun sarakkeen mukaan.
Kyselyn luominen
Luot lajiteltujen IP-osoitteiden valintakyselyn, joka näyttää tietueet nousevassa järjestyksessä IP-osoitteita varten. Oletetaan, että nykyisessä tietokannassa on MachineDetails-niminen taulukko, joka sisältää IPAddress-nimisen tekstikentän.
-
Napsauta Luo > Kyselyn rakennenäkymä.
-
Valitse Lisää taulukoita (Näytä taulukko Accessissa) ja vedä koneen tiedot rakennenäkymän yläosaan.
-
Vedä MachineID- ja IPAddress-kentät kyselyn rakenneruudukkoon.
-
Voit nyt lisätä lasketut sarakkeet. Kirjoita ensimmäiseen tyhjään sarakkeeseen oikealla lauseke PartI: Val(Left([IPAddress],(InStr(1;[IPAddress],".") -1)))Kenttä-rivillä . Lauseke palauttaa ensimmäistä pistettä edeltävät merkit (.) IPAddress-kentässä.
Tarkista nyt lauseke. Koska et tiedä, kuinka monta numeroa osoitteen ensimmäinen osa muodostaa, etsi ensimmäisen jakson sijainti InStr-funktiolla . Luvun 1 vähentäminen (kauden poisjättämiseksi) palauttaa ensimmäisen osan numeroiden määrän. Tämän jälkeen voit käyttää tätä lukua Vasen-funktion kanssa poimiaksesi niin monta merkkiä vasemmanpuoleisimmasta merkistä alkaen IPAddress-kentästä. Lopuksi kutsut Val-funktiota muuntaaksesi Vasemmanpuoleisen funktion palauttamat merkit numeroksi. Tämä viimeinen vaihe on tarpeen, koska pohjana oleva tietotyyppi on Teksti.
-
Tallenna kysely valitsemalla pikatyökaluriviltäTallenna. Tämä kannattaa tehdä jokaisen välivaiheen jälkeen.
-
Lisää toisen osoiteosan sarake. Kirjoita PartI:n oikealla puolella olevaan sarakkeeseen PartII: Val(Mid([IPAddress],InStr(1;[IPAddress],".") +1,InStr(InStr(1;[IPAddress],".") +1,[IPAddress],".") -InStr(1;[IPAddress],".") -1))Kenttä-rivillä . Lauseke palauttaa ipaddress-kentän ensimmäisen ja toisen jakson välissä olevat merkit.
Tarkista lauseke uudelleen. Koska et tiedä, kuinka monta numeroa muodostavat osoitteen toisen osan tai tarkalleen, mistä toinen osa alkaa (koska et tiedä, kuinka pitkä ensimmäinen osa on), etsit jaksojen sijainnit InStr-funktiolla . Sen jälkeen poimit Mid-funktiolla merkit, jotka seuraavat ensimmäistä pistettä mutta edeltävät toista jaksoa. Lopuksi kutsut Val-funktiota muuntaaksesi Mid-funktion palauttamat merkit numeroksi. Tämä viimeinen vaihe on tarpeen, koska pohjana oleva tietotyyppi on Teksti.
-
Lisää kolmannen osoiteosan sarake. Kirjoita PartII:n oikealla puolella olevaan sarakkeeseen 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))Kenttä-rivillä . Lauseke palauttaa ipaddress-kentän toisen ja kolmannen jakson välissä olevat merkit.
Tarkista lauseke uudelleen. Koska et tiedä, kuinka monta numeroa osoitteen kolmas osa muodostaa tai mistä kolmas osa alkaa (koska et tiedä ensimmäisen ja toisen osan kestoa), instr-funktiolla voit etsiä jaksojen sijainnit. Sen jälkeen poimit Mid-funktiolla merkit, jotka seuraavat toista jaksoa mutta edeltävät kolmatta jaksoa. Lopuksi kutsut Val-funktiota muuntaaksesi Mid-funktion palauttamat merkit numeroksi. Tämä viimeinen vaihe on tarpeen, koska pohjana oleva tietotyyppi on Teksti.
-
Lisää neljännen ja viimeisen osoitteen osan sarake. Kirjoita PartIII:n oikealla puolella olevaan sarakkeeseen PartIV: Val(Oikea([IPAddress],Len([IPAddress])-InStr(InStr(InStr(1;[IPAddress],".") +1,[IPAddress],".") +1,[IPAddress],"."))Kenttä-rivillä . Lauseke palauttaa viimeisen jakson jälkeen seuraavat merkit.
Tarkista lauseke uudelleen. Tärkeintä on etsiä kolmannen jakson sijainti ja poimia sitten kaikki sitä seuraavat merkit. Koska et tiedä tarkalleen, missä kolmas jakso sijaitsee, soitat InStr-funktioon kolme kertaa löytääksesi kolmannen jakson sijainnin. Sen jälkeen len-funktiolla lasketaan neljännen osan numeroiden määrä. Palautettujen numeroiden määrää käytetään sitten Oikea-funktion kanssa poimimaan niin monta merkkiä IPAddress-kentän oikeasta osasta. Lopuksi kutsut Val-funktiota muuntaaksesi Mid-funktion palauttamat merkit numeroksi. Tämä viimeinen vaihe on tarpeen, koska pohjana oleva tietotyyppi on Teksti.
-
Määritä kaikkien neljän lasketun sarakkeen Lajittelu-riviksi Nouseva.
Tärkeää IPAddress-sarakkeen Lajittele-rivin on oltava tyhjä.
Jos haluat lajitella muiden kenttien arvojen mukaan, sijoita kentät osoitteiden lisäksi kaikkien neljän lasketun sarakkeen vasemmalle tai oikealle puolelle. Älä sijoita muita lajittelukenttiä laskettujen sarakkeiden väliin.
-
Seuraava vaihe on piilottaa neljä laskettua saraketta taulukkonäkymästä. Ennen kuin teet tämän, siirry taulukkonäkymään nähdäksesi laskettujen sarakkeiden lausekkeiden tuloksen. Seuraavassa taulukossa näkyvät taulukkonäkymässä näkyvät sarakkeet.
MachineID
IPAddress
Parti
OsaII
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
-
Siirry takaisin rakennenäkymään ja poista kaikkien neljän lasketun sarakkeen Näytä-rivin valintaruudun valinta. Tämä estää laskettujen sarakkeiden näyttämisen taulukkonäkymässä.
-
Voit myös määrittää ehdot tietueiden jättämiselle pois kyselystä.
-
Siirry taulukkonäkymään, jos haluat nähdä tietueet lajitellussa järjestyksessä. Tietueet lajitellaan ip-osoitteiden nousevaan järjestykseen.
Lajiteltujen IP-osoitteiden käyttötavat
IP-osoitteiden vahvistaminen tietojen syöttämisen aikana
Jos haluat vahvistaa osoitteet ilman koodin kirjoittamista, voit tehdä sen rajoitetussa määrin määrittämällä kentän InputMask-ominaisuuden arvoksi ##.#### 0;" " ja&&&&&&&&&&&&ip-osoitekentän Muoto-ominaisuus .
Mitä syöttörajoite tekee? Kun alat kirjoittaa osoitekenttään, syöttörajoite estää sinua kirjoittamasta muita merkkejä kuin numeroita ja välilyöntejä kolmen pisteen väliin. Jos numeerinen osa on kaksinumeroinen luku, jätä kolmas numero tyhjäksi tai kirjoita välilyönti. Huomaa, että tämä syöttörajoite ei varoita käyttäjää, jos hän ohittaa osoitteen yhden tai useamman osan kirjoittamisen tai kirjoittaa vain välilyöntejä numeerisen arvon sijaan. Esimerkiksi "345. .3. " hyväksyttäisiin kelvollisena osoitteena.
Mitä näyttömuoto tekee? Kun lopetat kirjoittamisen ja poistut kentästä, näyttömuoto poistaa osoitteen välilyönnit ja näyttää vain numerot ja jaksot. Jos siis kirjoitit "354.35 .2 .12", osoite näkyy muodossa "354.35.2.12". Huomaa, että jos napsautat osoitteen sisällä tai painat F2-näppäintä (siirtyäksesi muokkaustilaan), kun osoite on valittuna, välilyönnit tulevat uudelleen näkyviin.
Vihje: Jos haluat kopioida osoitteen, siirry edelliseen sarakkeeseen tai ohjausobjektiin, valitse muotoiltu osoite painamalla SARKAIN-näppäintä ja valitse sitten Kopioi. Näin et kopioi välilyöntejä sisältävää osoitemerkkijonoa.
Lomakkeen tai raportin tietueiden lajitteleminen IP-osoitteiden mukaan
Jos haluat luoda lomakkeen tai raportin, jossa tietueet lajitellaan IP-osoitteiden mukaan, luo uusi objekti kyselyyn, joka lajittelee osoitteet edellä kuvatulla tavalla osoitteiden tallennuksen sijaan.