Applies ToMicrosoft 365 rakendus Access Access 2024 Access 2021 Access 2019 Access 2016

Selles teemas kirjeldatakse Access andmebaasi salvestatud Interneti-protokolli (IP) aadresside sortimise protseduuri.

Sissejuhatus

Kui töötate IP-aadressidega, teate ilmselt juba, et see pole nii lihtne kui teksti või numbritega töötamine. Seda seetõttu, et IP-aadress on tõepoolest neljast arvväärtusest koosnev kogum, mis on eraldatud punktiga (.), kus iga väärtus on arv vahemikus 0–255. Järgmises tabelis kuvatakse andmed enne mis tahes sortimisjärjestuse rakendamist.

Seadme ID

Töötaja

Asukoht

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-aadresside sortimine Accessis on väljakutse, kuna Access ei paku IP-aadresside talletamiseks eriandmetüüpi. Kuigi IP-aadress on ainult numbrite kogum, ei saa TE IP-aadresse numbriväljal talletada. Seda seetõttu, et arvuväli toetab ainult ühte kümnendkohta (.), samas kui IP-aadress sisaldab kolme punkti (.). See tähendab, et aadressid tuleb talletada tekstiväljal.

Kuna talletate IP-aadresse tekstiväljal, ei saa te Accessi sisseehitatud sortimisnuppude abil aadresse mõtestatud viisil sortida. Sortimisnupud sordivad alati väärtusi tekstiväljal tähestikulises järjestuses, isegi kui märgid on arvud. Teisisõnu sorditakse aadressid esimese numbri, teise numbri jne, mitte aadressi moodustavate arvväärtuste järgi. Järgmises tabelis on kuvatud eelmise tabeli aadressid, mis on sorditud tähestikulises järjestuses väljal IPAddress.

Seadme ID

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

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

Seadme ID

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

Selleks et nende aadresside sortimisega seotud toiminguid oleks lihtsam mõista, tükeldage IP-aadressid neljaks numbriliseks osaks. Aadressid tuleb sortida esimese osa järgi, seejärel esimese osa iga väärtuse järgi, seejärel teise osa järgi jne. Tabelis kuvatakse iga osa erinevas veerus ja kuna veerud sisaldavad lihtsaid arvväärtusi, saab veerge sortida vasakult paremale tõusvas järjestuses, nagu on näidatud järgmises tabelis.

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

NELJA osa eraldi sortimine on IP-aadresside sortimise nipp. Järgmises toimingus loote päringu, mis lisaks IP-aadressi väljale sisaldab nelja arvutatud veergu, kus iga veerg talletab osa aadressiväärtustest. Esimene arvutuslik veerg sisaldab aadressi esimest arvulist osa, teine arvutuslik veerg aadressi teist arvulist osa jne. Selle asemel, et sortida kirjeid välja IPAddress järgi, sordib päring kirjed nelja arvutatud veeru järgi.

Päringu loomine

Saate luua valikupäringu nimega Sorditud IPAddresses, mis kuvab kirjed IP-aadresside tõusvas järjestuses. Oletame, et praegune andmebaas on tabel nimega MachineDetails, mis sisaldab tekstivälja nimega IPAddress.

  1. Klõpsake menüüd Loo ja nuppu Päringu kujundus

  2. Valige Add Tables (Show Table in Access) (Kuva Tabel Accessis) ja lohistage Seadme üksikasjad kujundusvaate ülemisse jaotisse.

  3. Lohistage väljad MachineID ja IPAddress päringu kujundusruudustikku.

  4. Nüüd olete valmis arvutatud veerge lisama. Tippige paremal asuvasse esimesse tühja veergu avaldis PartI: Val(Left([IPAddress],(InStr(1,[IPAddress],".") -1))) real Väli . Avaldis tagastab esimesele punktile eelnevad märgid (.) väljal IPAddress.

    Nüüd vaadake avaldis üle. Kuna te ei tea, mitu numbrit moodustab aadressi esimese osa, saate funktsiooni InStr abil leida esimese punkti asukoha. Arvu 1 lahutamine (perioodi välistamiseks) tagastab esimese osa numbrite arvu. Seejärel kasutage seda numbrit koos funktsiooniga Left , et ekstraktida väljalt IPAddress nii palju märke alates vasakpoolseimast märgist. Lõpuks tuleb funktsiooni Val abil teisendada funktsiooni Left tagastatud märgid arvuks. Viimane toiming on vajalik, kuna aluseks olev andmetüüp on Tekst.

  5. Päringu salvestamiseks klõpsake kiirpääsuribal nuppu Salvesta. Seda on mõistlik teha pärast iga vaheetapi.

  6. Lisage teise aadressiosa veerg. Tippige partI parempoolsesse veergu PartII: Val(Mid([IPAddress],InStr(1,[IPAddress],".") +1,InStr(InStr(1;[IPAddress];".") +1,[IPAddress],".") -InStr(1;[IPAddress];".") -1)) real Väli . Avaldis tagastab märgid, mis asuvad välja IPAddress esimese ja teise perioodi vahel.

    Vaadake avaldis uuesti läbi. Kuna te ei tea, mitu numbrit moodustab aadressi teise osa või kust teine osa algab (kuna te ei tea, kui pikk on esimene osa), saate funktsiooni InStr abil leida perioodide asukohad. Seejärel kasutage funktsiooni Mid esimesele perioodile eelnevate märkide ekstraktimiseks. Lõpuks tuleb funktsiooni Val abil teisendada funktsiooni Mid tagastatud märgid arvuks. Viimane toiming on vajalik, kuna aluseks olev andmetüüp on Tekst.

  7. Lisage kolmanda aadressiosa veerg. Tippige partII-st paremal olevasse veergu 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)) real Väli . Avaldis tagastab märgid, mis asuvad väljal IPAddress teise ja kolmanda perioodi vahel.

    Vaadake avaldis uuesti läbi. Kuna te ei tea, mitu numbrit moodustab aadressi kolmas osa või kust kolmas osa algab (kuna te ei tea, kui pikad on esimesed ja teised osad), saate funktsiooni InStr abil leida perioodide asukohad. Seejärel saate funktsiooni Mid abil ekstraktida märgid, mis järgnevad teisele, kuid eelnevale kolmandale perioodile. Lõpuks tuleb funktsiooni Val abil teisendada funktsiooni Mid tagastatud märgid arvuks. Viimane toiming on vajalik, kuna aluseks olev andmetüüp on Tekst.

  8. Lisage neljanda ja viimase aadressi osa veerg. Tippige partIII paremas veerus tekst PartIV: Val(Right([IPAddress],Len([IPAddress])-InStr(InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") +1,[IPAddress],"."))) real Väli . Avaldis tagastab viimasele perioodile järgnevad märgid.

    Vaadake avaldis uuesti läbi. Oluline on leida kolmanda perioodi asukoht ja seejärel ekstraktida kõik sellele järgnevad märgid. Kuna te ei tea täpselt, kus kolmas periood asub, kutsute kolmanda perioodi asukoha leidmiseks funktsiooni InStr kolm korda. Seejärel saate funktsiooni Len abil arvutada neljandas osas olevate numbrite arvu. Seejärel kasutatakse tagastatavate numbrite arvu funktsiooniga Right , et ekstraktida välja IPAddress paremast osast mitu märki. Lõpuks tuleb funktsiooni Val abil teisendada funktsiooni Mid tagastatud märgid arvuks. Viimane toiming on vajalik, kuna aluseks olev andmetüüp on Tekst.

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

    NB!    Veeru IPAddress rida Sordi peab jääma tühjaks.

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

  10. Järgmiseks tuleb neli arvutuslikku veergu andmelehelt peita. Kuid enne seda aktiveerige andmelehevaade, et näha arvutuslike veergude avaldiste tulemit. Järgmises tabelis on kuvatud andmelehevaates kuvatavad veerud.

    Seadme ID

    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. Aktiveerige uuesti kujundusvaade ja tühjendage kõigi nelja arvutusliku veeru real Kuva olev ruut. Nii ei kuvata arvutuslikke veerge andmelehevaates.

  12. Soovi korral saate määrata päringust kirjete välistamise kriteeriumid.

  13. Kirjete sortimisjärjestuses kuvamiseks aktiveerige andmelehevaade. IP-aadresside tõusvas järjestuses sorditud kirjed kuvatakse õigesti.

Rohkem kasutusalasid sorditud IP-aadresside jaoks

IP-aadresside valideerimine andmesisestuse ajal

Kui soovite valideerida aadressid ilma koodi kirjutamata, saate seda teha piiratud ulatuses, määrates välja atribuudi InputMask väärtuseks ###.###.####; 0;" " ja välja IP-aadress atribuut Format&&&&&&&&&&&&.

Mida sisestusmask teeb? Kui alustate aadressiväljale tippimist, ei luba sisestusmask kolme perioodi vahele sisestada muid märke peale numbrite ja tühikute. Kui arvuline osa on topeltnumbriline, jätke kolmas number tühjaks või tippige selle asemel tühik. Pange tähele, et see sisestusmask ei hoiata kasutajat, kui ta jätab aadressi ühe või mitme osa tippimise vahele või tipib numbrilise väärtuse asemel ainult tühikud. Näiteks "345. .3. " aktsepteeritaks kehtiva aadressina.

Mida kuvavorming teeb? Kui olete tippimise lõpetanud ja väljute väljalt, eemaldab kuvavorming aadressis olevad tühikud ning kuvab ainult arvud ja punktid. Kui tippisite "354.35 .2 .12", kuvatakse aadress kujul "354.35.2.12". Pange tähele, et kui klõpsate aadressi või vajutate aadressi valimisel klahvi F2 (redigeerimisrežiimi aktiveerimiseks), kuvatakse tühikud uuesti.

Näpunäide.: Kui soovite aadressi kopeerida, liikuge eelmisele veerule või juhtelemendile, vajutage vormindatud aadressi valimiseks tabeldusklahvi (TAB) ja seejärel klõpsake nuppu Kopeeri. Seda tehes ei kopeeri te tühikuid sisaldavat aadressistringi.

Vormi või aruande kirjete sortimine IP-aadresside alusel

Kui teil on vaja luua vorm või aruanne, kus kirjed sorditakse IP-aadresside alusel, põhineb uus objekt päringul, mis sordib aadressid eespool kirjeldatud viisil, mitte aadresside talletamise tabeli alusel.

Lehe algusse

Kas vajate veel abi?

Kas soovite rohkem valikuvariante?

Siin saate tutvuda tellimusega kaasnevate eelistega, sirvida koolituskursusi, õppida seadet kaitsma ja teha veel palju muud.

Kogukonnad aitavad teil küsimusi esitada ja neile vastuseid saada, anda tagasisidet ja saada nõu rikkalike teadmistega asjatundjatelt.