Applies ToAccess pentru Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Acest subiect descrie procedura pentru sortarea adreselor IP stocate într-o bază de date Access.

Introducere

Dacă lucrați cu adrese IP, probabil că știți deja că nu este la fel de simplă ca lucrul cu text sau numere. Aceasta deoarece o adresă IP este de fapt o colecție de patru valori numerice separate printr-un punct (.), unde fiecare valoare este un număr între 0 și 255. Următorul tabel afișează datele înainte de aplicarea oricărei ordini de sortare.

ID computer

Angajat

Locație

Adresă IP

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

Sortarea adreselor IP în Access este o provocare, deoarece Access nu furnizează un tip de date special pentru stocarea adreselor IP. Deși o adresă IP este doar o colecție de numere, nu puteți stoca o adresă IP într-un câmp numeric. Acest lucru se întâmplă deoarece un câmp numeric acceptă doar o singură virgulă zecimală (.), în timp ce o adresă IP conține trei puncte (.). Acest lucru înseamnă că trebuie să stocați adresele într-un câmp text.

Deoarece stocați adrese IP într-un câmp text, nu puteți utiliza butoanele de sortare predefiniți din Access pentru a sorta adresele într-un mod semnificativ. Butoanele de sortare sortează întotdeauna valorile dintr-un câmp text în ordine alfabetică, chiar dacă caracterele sunt numere. Cu alte cuvinte, adresele sunt sortate după prima cifră, apoi după a doua cifră și așa mai departe, nu după valorile numerice care alcătuiesc adresa. Următorul tabel afișează adresele din tabelul anterior sortate în ordine alfabetică în câmpul IPAddress.

ID computer

Adresă IP

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

Adresele care încep cu 1 sunt afișate înainte de adresele care încep cu 2 și așa mai departe. Următorul tabel arată adresele în ordinea ascendentă corectă .

ID computer

Adresă IP

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

Pentru a înțelege mai ușor pașii implicați în sortarea acestor adrese, împărțiți adresele IP în patru părți numerice. Adresele trebuie sortate după prima parte, apoi după fiecare valoare din prima parte, apoi după a doua parte și așa mai departe. Tabelul afișează fiecare parte dintr-o altă coloană și, deoarece coloanele conțin valori numerice simple, devine posibil să sortați coloanele de la stânga la dreapta în ordine ascendentă, așa cum se arată în tabelul următor.

ParteI

Partea A II-a

Partea A II-A

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

Sortarea separată a celor patru părți este trucul din spatele sortării adreselor IP. În procedura care urmează, creați o interogare care, în plus față de câmpul adresă IP, include patru coloane calculate în care fiecare coloană stochează o parte din valorile adresei. Prima coloană calculată va cuprinde prima parte numerică a adresei, a doua coloană calculată va cuprinde a doua parte numerică a adresei și așa mai departe. În loc să sorteze înregistrările după câmpul ADRESĂPO, interogarea va sorta înregistrările după cele patru coloane calculate.

Crearea interogării

Veți crea o interogare de selectare denumită Adrese IP sortate care afișează înregistrările în ordine ascendentă a adreselor IP. Să presupunem că baza de date curentă are un tabel denumit MachineDetails care include un câmp text numit IPAddress.

  1. Faceți clic pe Creare > proiectare interogare

  2. Selectați Adăugare tabele (Afișare tabel în Access) și glisați Detalii computer în secțiunea superioară a Vizualizării proiect.

  3. Glisați câmpurile ID MachineID și IPAddress în grila de proiectare a interogării.

  4. Acum sunteți gata să adăugați coloanele calculate. În prima coloană necompletată din dreapta, tastați expresia PartI: Val(Left([IPAddress],(InStr(1,[IPAddress],".") -1))) în rândul Câmp . Expresia returnează caracterele anterioare primei perioade (.) în câmpul IPAddress.

    Acum, revizuiți expresia. Deoarece nu știți câte cifre alcătuiesc prima parte a adresei, utilizați funcția InStr pentru a găsi poziția primei perioade. Scăderea numărului 1 (pentru a exclude perioada) returnează numărul de cifre din prima parte. Apoi utilizați acest număr cu funcția Left pentru a extrage atât de multe caractere, începând de la caracterul cel mai din stânga, din câmpul IPAddress. În sfârșit, apelați funcția Val pentru a efectua conversia caracterelor returnate de funcția Left într-un număr. Acest ultim pas este necesar, deoarece tipul de date subiacent este Text.

  5. Salvați interogarea făcând clic pe Salvare pe bara de instrumente Acces rapid. Este o idee bună să faceți acest lucru după fiecare pas intermediar.

  6. Adăugați coloana pentru a doua parte adresă. În coloana din partea dreaptă a Părții, tastați PartII: Val(Mid([IPAddress],InStr(1,[IPAddress],".") +1,InStr(InStr(1,[ADRESĂPO],".") +1,[ADRESĂPO],".") -InStr(1,[ADRESĂPO],".") -1)) în rândul Câmp . Expresia returnează caracterele aflate între prima și a doua perioadă din câmpul IPAddress.

    Din nou, revizuiți expresia. Pentru că nu știți câte cifre alcătuiesc a doua parte a adresei sau exact locul de unde începe a doua parte (pentru că nu știți cât timp este prima parte), utilizați funcția InStr pentru a găsi pozițiile perioadelor. Apoi utilizați funcția Mid pentru a extrage caracterele care urmează după prima perioadă, dar care preced a doua perioadă. În sfârșit, apelați funcția Val pentru a efectua conversia caracterelor returnate de funcția Mid într-un număr. Acest ultim pas este necesar, deoarece tipul de date subiacent este Text.

  7. Adăugați coloana pentru a treia parte adresă. În coloana din partea dreaptă a PartII, tastați PartIII: Val(Mid([IPAddress],InStr(InStr(1,[IPAddress],".") +1,[ADRESĂPO],".") +1,InStr(InStr(InStr(1,[ADRESĂPO],".") +1,[ADRESĂPO],".") +1,[ADRESĂPO],".") -InStr(InStr(1,[ADRESĂ IP],".") +1,[ADRESĂPO],".") -1)) în rândul Câmp . Expresia returnează caracterele aflate între a doua și a treia perioadă din câmpul IPAddress.

    Din nou, revizuiți expresia. Deoarece nu știți câte cifre alcătuiesc a treia parte a adresei sau exact locul de unde începe a treia parte (pentru că nu știți cât timp sunt primele și a doua părți), utilizați funcția InStr pentru a găsi pozițiile perioadelor. Apoi utilizați funcția Mid pentru a extrage caracterele care urmează după a doua perioadă, dar care preced a treia perioadă. În sfârșit, apelați funcția Val pentru a efectua conversia caracterelor returnate de funcția Mid într-un număr. Acest ultim pas este necesar, deoarece tipul de date subiacent este Text.

  8. Adăugați coloana pentru a patra și ultima parte a adresei. În coloana din partea dreaptă a PartIII, tastați PartIV: Val(Right([IPAddress],Len([IPAddress])-InStr(InStr(InStr(1,[IPAddress],".") +1,[ADRESĂPO],".") +1,[ADRESĂPO],"."))) în rândul Câmp . Expresia returnează caracterele care urmează după ultimul punct.

    Din nou, revizuiți expresia. Cheia este să găsiți locația celei de-a treia perioade și să extrageți apoi toate caracterele care o urmează. Pentru că nu știți exact unde se află a treia perioadă, apelați funcția InStr de trei ori pentru a găsi poziția celei de-a treia perioade. Apoi utilizați funcția Len pentru a calcula numărul de cifre din a patra parte. Numărul de cifre returnate este utilizat apoi cu funcția Right pentru a extrage acel număr de caractere din porțiunea dreaptă a câmpului IPAddress. În sfârșit, apelați funcția Val pentru a efectua conversia caracterelor returnate de funcția Mid într-un număr. Acest ultim pas este necesar, deoarece tipul de date subiacent este Text.

  9. Setați rândul Sortare din toate cele patru coloane calculate la Ascendent.

    Important    Rândul Sortare din coloana IPAddress trebuie să fie necompletat.

    Dacă doriți să sortați după alte valori de câmp, pe lângă adrese, plasați câmpurile fie la stânga, fie la dreapta tuturor celor patru coloane calculate. Nu plasați celelalte câmpuri de sortare între coloanele calculate.

  10. Următorul pas este să ascundeți cele patru coloane calculate din foaia de date. Dar, înainte de a face acest lucru, comutați la Vizualizarea foaie de date pentru a vedea rezultatul expresiilor din coloanele calculate. Următorul tabel afișează coloanele pe care le veți vedea în vizualizarea Foaie de date.

    ID computer

    Adresă IP

    ParteI

    Partea A II-a

    Partea A II-A

    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. Comutați înapoi la Vizualizarea proiect și debifați caseta de selectare din rândul Afișare din toate cele patru coloane calculate. Acest lucru împiedică afișarea coloanelor calculate în vizualizarea Foaie de date.

  12. Opțional, specificați criteriile pentru excluderea înregistrărilor din interogare.

  13. Comutați la Vizualizare foaie de date pentru a vedea înregistrările în ordinea sortată. Veți vedea înregistrările sortate corect în ordine ascendentă a adreselor IP.

Mai multe utilizări pentru adreseLE IP sortate

Validarea adreselor IP în timpul introducerii datelor

Dacă doriți să validați adresele fără a scrie cod, puteți face acest lucru într-o măsură limitată setând proprietatea InputMask a câmpului la ###.###.##.##; 0;" " și proprietatea Format a câmpului adresă IP de &&&&&&&&&&&&.

Ce face masca de intrare? Când începeți să tastați în câmpul adresă, masca de intrare vă împiedică să introduceți alte caractere decât numere și spații între cele trei puncte. Dacă o parte numerică este un număr din două cifre, lăsați a treia cifră necompletată sau tastați un spațiu. Rețineți că această mască de intrare nu avertizează utilizatorul dacă omite tastarea uneia sau mai multor părți ale adresei sau tastează doar spații în locul unei valori numerice. De exemplu, "345. .3. " ar fi acceptat ca adresă validă.

Ce face formatul de afișare? Când terminați de tastat și părăsiți câmpul, formatul de afișare elimină spațiile din adresă și afișează doar numerele și punctele. Astfel, dacă ați tastat "354.35 .2 .12 ", adresa se afișează ca "354.35.2.12". Rețineți că, dacă faceți clic în adresă sau apăsați F2 (pentru a intra în modul de editare) atunci când este selectată adresa, spațiile vor reapărea.

Sfat: Dacă doriți să copiați o adresă, treceți la coloana sau controlul anterior, apăsați TAB pentru a selecta adresa formatată, apoi faceți clic pe Copiere. Procedând astfel, nu veți copia șirul de adresă care conține spații.

Sortarea înregistrărilor dintr-un formular sau raport după adrese IP

Dacă trebuie să creați un formular sau un raport în care înregistrările sunt sortate după adrese IP, bazați noul obiect pe o interogare care sortează adresele așa cum s-a descris anterior, nu pe tabelul care stochează adresele.

Începutul paginii

Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.

Comunitățile vă ajută să adresați întrebări și să răspundeți la întrebări, să oferiți feedback și să primiți feedback de la experți cu cunoștințe bogate.