Tässä ohjeaiheessa kerrotaan, miten Access-tietokantaan tallennetut IP-osoitteet lajitellaan.
Johdanto
Jos käsittelet IP-osoitteita, tiedät varmaan, että se ei ole yhtä helppoa kuin tekstin tai numeroiden käsitteleminen. Tämä johtuu siitä, että IP-osoite on oikeastaan kokoelma neljästä numeroarvosta, jotka on erotettu toisistaan pisteellä (.), ja kukin arvo on luku välillä 0–255. Seuraavassa taulukossa näytetään tiedot ennen lajittelujärjestystä.
| MachineID | Työntekijä | Sijainti | IPOddress |
|---|---|---|---|
| 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 lajittelu Accessissa on haastavaa, koska Access ei tarjoa erityistä tietotyyppiä IP-osoitteiden tallentamista varten. Vaikka IP-osoite on vain kokoelma numeroita, et voi tallentaa IP-osoitetta numeeriseen kenttää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 IP-osoitteet tallennetaan tekstikenttään, et voi käyttää Accessin valmiita lajittelupainikkeita osoitteiden järkevään lajitteluun. Lajittelupainikkeet lajittelevat tekstikentän arvot aina aakkosjärjestykseen, vaikka merkit olisivat lukuja. Osoitteet siis lajitellaan ensimmäisen numeron ja sitten toisen numeron mukaan jne. osoitteen muodostavien numeroarvojen sijaan. Seuraavassa taulukossa näkyvät edellisen taulukon osoitteet lajiteltuina aakkosjärjestykseen IPOsoite-kentässä.
| MachineID | IPOddress |
|---|---|
| 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, jotka alkavat numerolla 1, näytetään ennen osoitteita, jotka alkavat numerolla 2, ja niin edelleen. Seuraavassa taulukossa osoitteet on esitetty nousevassa järjestyksessä.
| MachineID | IPOddress |
|---|---|
| 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 osoitteiden lajitteluun liittyvät vaiheet olisi helpompi ymmärtää, jaa IP-osoitteet neljään numero-osaan. Osoitteet on lajiteltava ensimmäisen osan mukaan, sitten ensimmäisen osan jokaisen arvon mukaan, sitten toisen osan mukaan ja niin edelleen. Taulukossa kukin osa näkyy eri sarakkeessa, ja koska sarakkeissa on yksinkertaisia numeerisia arvoja, sarakkeita voi lajitella nousevassa järjestyksessä vasemmalta oikealle seuraavassa taulukossa esitetyllä tavalla.
| Osa I | Osa II | Osa III | Osa IV |
|---|---|---|---|
| 1 | 198 | 3 | 93 |
| 32 | 183 | 93 | 40 |
| 104 | 30 | 244 | 2 |
| 104 | 244 | 4 | 1 |
| 104 | 244 | 253 | 29 |
| 123 | 4 | 245 | 23 |
IP-osoitteiden lajittelussa käytetään neljää osaa erikseen. Seuraavassa menettelyssä luodaan kysely, joka sisältää IP-osoitekentän lisäksi neljä laskettua saraketta, joiden kuhunkin sarakkeeseen tallennetaan osa osoitearvoista. Ensimmäisessä lasketussa sarakkeessa on osoitteen ensimmäinen numeerinen osa, toisessa lasketussa sarakkeessa on osoitteen toinen numeerinen osa ja niin edelleen. Kysely lajittelee tietueet neljän lasketun sarakkeen mukaan sen sijaan, että tietueet lajiteltaisiin IPOsoite-kentän mukaan.
Kyselyn luominen
Luot valintakyselyn nimeltä Lajitellut IP-osoitteet, joka näyttää tietueet nousevassa IP-osoitteessa. Oletetaan, että nykyisessä tietokannassa on taulukko nimeltä Konetiedot, joka sisältää tekstikentän nimeltä IPOsoite.
Valitse Luo>kyselyn rakenne.
Valitse Lisää taulukoita (Näytä taulukko Accessissa) ja vedä Koneen tiedot rakennenäkymän yläosaan.
Vedä MachineID- ja IPOsoite-kentät kyselyn rakenneruudukkoon.
Nyt voit lisätä lasketut sarakkeet. Kirjoita oikealla olevaan ensimmäiseen tyhjään sarakkeeseen lauseke PartI: Val(Left([IPOsoite],(InStr(1,[IPOsoite],".")-1)))Kenttä-rivillä . Lauseke palauttaa IPOsoite-kentän ensimmäistä pistettä (.) edeltävät merkit.
Tarkastele seuraavaksi lauseketta. Koska et tiedä, kuinka monta numeroa osoitteen ensimmäisessä osassa on, etsi ensimmäisen pisteen sijainti InStr-funktiolla . Vähentämällä luvun 1 (pisteen laskemiseksi pois) palautetaan ensimmäisen osan numeroiden määrä. Tämän jälkeen voit käyttää tätä lukua Vasen-funktion kanssa poimimaan niin monta merkkiä IPOsoite-kentästä vasemmanpuoleisimmasta merkistä alkaen. Kutsu lopuksi Val-funktiota muuntaaksesi Left-funktion palauttamat merkit luvuksi. 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 osan I oikealla puolella olevaan sarakkeeseen PartII: Val(Mid([IPOsoite],InStr(1,[IPOsoite],".")+1,InStr(InStr(1,[IPOsoite],".")+1,[IPOsoite],".")-InStr(1,[IPOsoite],".")-1))Kenttä-rivillä . Lauseke palauttaa merkit, jotka ovat IPOsoite-kentässä ensimmäisen ja toisen pisteen välissä.
Tarkista lauseke uudelleen. Koska et tiedä, kuinka monta numeroa osoitteen toinen osa koostuu tai mistä toinen osa alkaa (koska et tiedä, kuinka pitkä ensimmäinen osa on), etsit jaksojen sijainnit InStr-funktion avulla. Tämän jälkeen poimit Teksti-funktion avulla merkit, jotka tulevat ensimmäisen pisteen jälkeen mutta edeltävät toista pistettä. Kutsu lopuksi ARVO-funktiota muuntaaksesi Mid-funktion palauttamat merkit luvuksi. Tämä viimeinen vaihe on tarpeen, koska pohjana oleva tietotyyppi on Teksti.Lisää kolmannen osoiteosan sarake. Kirjoita osan II oikealla puolella olevaan sarakkeeseen Osa III: Val(Mid([IPOsoite],InStr(InStr(1,[IPOsoite],".")+1,[IPOsoite],".")+1,InStr(InStr(InStr(1,[IPOsoite],".")+1,[IPOsoite],".")+1,[IPOsoite],".")-InStr(InStr(1,[IPOsoite],".")+1,[IPOsoite],".")-1))Kenttä-rivillä . Lauseke palauttaa merkit, jotka ovat toisen ja kolmannen pisteen välissä IPOsoite-kentässä.
Tarkista lauseke uudelleen. Koska et tiedä, kuinka monta numeroa osoitteen kolmanneosa koostuu tai mistä kolmas osa alkavat (koska et tiedä, kuinka pitkiä ensimmäinen ja toinen osa ovat), voit etsiä pisteiden sijainnit InStr-funktion avulla. Poimi.TEKSTI-funktiolla poimitaan toisen pisteen jälkeiset mutta kolmatta pistettä edeltävät merkit. Kutsu lopuksi ARVO-funktiota muuntaaksesi Mid-funktion palauttamat merkit luvuksi. Tämä viimeinen vaihe on tarpeen, koska pohjana oleva tietotyyppi on Teksti.Lisää neljännen ja viimeisen osoiteosan sarake. Kirjoita osan III oikealla puolella olevaan sarakkeeseen OsaIV: Val(Right([IPOddress],Len([IPOddress])-InStr(InStr(InStr(1,[IPOsoite],".")+1,[IPOsoite],".")+1,[IPOsoite],"."))) kenttärivillä. Lauseke palauttaa merkit, jotka seuraavat viimeistä pistettä.
Tarkista lauseke uudelleen. Tärkeintä on löytää kolmannen pisteen sijainti ja poimia sitten kaikki sitä seuraavat merkit. Koska et tiedä tarkalleen, missä kolmas piste sijaitsee, sinun on kutsuttava InStr-funktiota kolme kertaa kolmannen pisteen sijainnin löytämiseksi. Sen jälkeen voit laskea neljännen osan numeroiden määrän Pituus-funktion avulla. Palautettujen numeroiden määrää käytetään sitten Oikea-funktion kanssa poimimaan niin monta merkkiä IPOsoite-kentän oikeasta osasta. Kutsu lopuksi ARVO-funktiota muuntaaksesi Mid-funktion palauttamat merkit luvuksi. Tämä viimeinen vaihe on tarpeen, koska pohjana oleva tietotyyppi on Teksti.Määritä kaikkien neljän lasketun sarakkeen Lajittelu-rivinousevaksi.
Tärkeää IPOsoite-sarakkeen Lajittelu-rivi on jätettävä tyhjäksi.
Jos haluat lajitella osoitteiden lisäksi myös muiden kenttäarvojen mukaan, sijoita kentät kaikkien neljän lasketun sarakkeen vasemmalle tai oikealle puolelle. Älä sijoita muita lajittelukenttiä laskettujen sarakkeiden väliin.Seuraavaksi neljä laskettua saraketta on piilotettava taulukkonäkymästä. Sitä ennen sinun on vaihdettava taulukkonäkymään, jotta näet laskettujen sarakkeiden lausekkeiden tulokset. Seuraavassa taulukossa näkyvät taulukkonäkymän sarakkeet.
MachineID IPOddress Osa I Osa II Osa III Osa IV 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 Palaa 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ä.
Vaihda taulukkonäkymään, jotta näet tietueet lajitellussa järjestyksessä. Näet tietueet oikein lajiteltuina IP-osoitteiden mukaan nousevassa järjestyksessä.
Lisää käyttötapoja lajitelluille IP-osoitteille
IP-osoitteiden vahvistaminen tietojen syöttämisen aikana
Jos haluat vahvistaa osoitteet kirjoittamatta koodia, voit tehdä sen rajoitetusti määrittämällä kentän syöttöpeiteominaisuuden arvoksi ###.###.#.#; 0;" " ja IP-osoitekentän Muoto-ominaisuuden arvoksi&&&&&&&&&&&&.
Mitä syöttörajoite tekee? Kun alat kirjoittaa osoitekenttään, syöttörajoite estää kirjoittamasta kolmen pisteen väliin muita merkkejä kuin numeroita ja välilyöntejä. Jos numeerinen osa on kaksinumeroinen luku, jätä kolmas numero tyhjäksi tai paina välilyönti. Syöttörajoite ei kuitenkaan varoita käyttäjää, jos hän jättää osoitteen yhden tai usean osan kirjoittamatta tai kirjoittaa vain välilyöntejä numeroarvon sijaan. Esimerkiksi "345. .3. " hyväksyttäisiin kelvolliseksi osoitteeksi.
Mitä näyttömuoto tekee? Kun lopetat kirjoittamisen ja poistut kentästä, näyttömuoto poistaa osoitteessa olevat välilyönnit ja näyttää vain numerot ja pisteet. Jos siis kirjoitit "354.35 .2 .12 ", osoite näkyy muodossa 354.35.2.12. Huomaa, että jos napsautat osoitteen sisäpuolta 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 SARKAINTA ja valitse sitten Kopioi. Tällöin et kopioi välilyöntejä sisältävää osoitemerkkijonoa.
Lomakkeen tai raportin tietueiden lajitteleminen IP-osoitteen mukaan
Jos haluat luoda lomakkeen tai raportin, jossa tietueet lajitellaan IP-osoitteiden mukaan, luo uusi objekti sellaisen kyselyn perusteella, joka lajittelee osoitteet edellä kuvatulla tavalla, osoitteet tallentavan taulukon sijaan.
Sivun alkuun