Sortarea adreselor IP în Access

Notă: Dorim să vă oferim cel mai recent conținut de ajutor, cât mai rapid posibil, în limba dvs. Această pagină a fost tradusă automatizat și poate conține erori gramaticale sau inexactități. Scopul nostru este ca acest conținut să vă fie util. Vă rugăm să ne spuneți dacă informațiile v-au fost utile, în partea de jos a acestei pagini. Aici se află articolul în limba engleză, ca să îl puteți consulta cu ușurință.

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

Introducere

Dacă lucrați cu adrese IP, probabil știți deja că nu este la fel de simplu ca lucrul cu text sau numere. Acest lucru se întâmplă deoarece o adresă IP este într-adevăr o colecție de patru valori numerice separate de un punct (.), unde fiecare valoare este un număr între 0 și 255. Următorul tabel afișează datele înainte de aplicarea oricărei comenzi de sortare.

MachineID

Angajat

Locație

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

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

Deoarece stocați adresele IP într-un câmp text, nu puteți utiliza butoanele de sortare predefinite din Access pentru a sorta adresele într-un mod semnificativ. Butoanele sortare sortează întotdeauna valori într-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, în locul valorilor numerice care alcătuiesc adresa. Următorul tabel afișează adresele din tabelul anterior sortate în ordine alfabetică în câmpul IPAddress.

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

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

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

Pentru a simplifica înțelegerea pașilor implicați în sortarea acestor adrese, întrerupeți adresele IP în patru părți numerice. Adresele trebuie sortate după prima parte, apoi pentru 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 deț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.

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

Sortarea celor patru părți separat 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 avea prima parte numerică a adresei, a doua coloană calculată va deține a doua parte numerică a adresei și așa mai departe. În loc să sortați înregistrările după câmpul IPAddress, interogarea va sorta înregistrările după cele patru coloane calculate.

Crearea interogării

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

  1. Faceți clic pe CreareProiectare interogare>. 

  2. În caseta de dialog Afișare tabel , pe fila tabele , faceți clic pe MachineDetails apoi faceți clic pe Adăugare. Închideți caseta de dialog.

  3. Glisați câmpurile 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 care preced prima perioadă (.) în câmpul IPAddress.

    Acum, examinaț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ăzând 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âtea caractere, începând de la cel mai din stânga caracter, din câmpul Ipaddress. În cele din urmă, 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ă procedați astfel după fiecare pas intermediar.

  6. Adăugați coloana pentru a doua parte a adresei. În coloana din partea dreaptă a PartIi, tastați partii: val (MID ([Ipaddress], instr (1, [Ipaddress], ".") + 1, instr (instr (1, [IPAddress], ".") + 1, [IPAddress], ".") -Instr (1, [IPAddress], ".") -1)) în rândul câmp . Expresia returnează caracterele care se află între prima și a doua perioadă din câmpul IPAddress.

    Din nou, examinați expresia. Pentru că nu știți câte cifre alcătuiesc a doua parte a adresei sau exact în locul în care începe a doua parte (deoarece nu știți cât de lungă 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ă primei perioade, dar precedă a doua perioadă. În cele din urmă, 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 de adresă. În coloana din dreapta PartII, tastați PartIII: val (MID ([Ipaddress], instr (instr (1, [Ipaddress], ".") + 1, [IPAddress], ".") + 1, instr (instr (1, [IPAddress], ".") + 1, [IPAddress], ".") + 1, [IPAddress], ".") -Instr (instr (1, [IPAddress], ".") + 1, [IPAddress], ".") -1)) în rândul câmp . Expresia returnează caracterele care se află între a doua și a treia perioadă din câmpul IPAddress.

    Din nou, examinați expresia. Pentru că nu știți câte cifre alcătuiesc a treia parte a adresei sau exact acolo unde pornește a treia parte (deoarece 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ă celei de-a doua perioade, dar precedă a treia perioadă. În cele din urmă, 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 dreapta PartIII, tastați PartIV: val (dreapta ([Ipaddress], Len ([Ipaddress])-instr (instr (1, [Ipaddress], ".") + 1, [IPAddress], ".") + 1, [IPAddress], "."))) în rândul câmp . Expresia returnează caracterele care urmează ultimei perioade.

    Din nou, examinați expresia. Cheia este să găsiți locația celei de-a treia perioade, apoi să extrageți toate caracterele care îl urmează. Deoarece 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 atâtea caractere din partea dreaptă a câmpului Ipaddress. În cele din urmă, 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.

    Importante    Rândul de Sortare al coloanei Ipaddress trebuie să rămână necompletat.

    Dacă doriți să sortați după alte valori de câmp, în plus față de adrese, amplasați câmpurile fie la stânga, fie la dreapta tuturor celor patru coloane calculate. Nu amplasaț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.

    MachineID

    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. CoMutați înapoi la vizualizarea proiect și debifați caseta de selectare din rândul Afișare din toate cele patru coloane calculate. Aceasta î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 vizualizarea foaie de date pentru a vedea înregistrările în ordine sortată. Veți vedea înregistrările corect sortate î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ă cod de scriere, 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 la &&&&&&&&&&&&.

Ce face masca de intrare? Atunci 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 perioade. Dacă o parte numerică este un număr din două cifre, lăsați a treia cifră necompletată sau tastați un spațiu în schimb. Rețineți că această mască de intrare nu avertizează utilizatorul dacă omite să tasteze una sau mai multe părți ale adresei sau să sorteze numai spații în loc de o valoare numerică. De exemplu, "345. 3. "va 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 perioadele. Așadar, 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 interiorul adresei sau apăsați F2 (pentru a intra în modul editare) atunci când adresa este selectată, spațiile vor reapărea.

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

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

Dacă trebuie să creați un formular sau un raport în care înregistrările sunt sortate după adresele IP, bazați obiectul nou într-o interogare care sortează adresele descrise anterior, în loc să fie în tabelul care stochează adresele.

Începutul paginii

Extindeți-vă competențele Office
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă utilizatorilor Office Insider

Au fost utile aceste informații?

Vă mulțumim pentru feedback!

Vă mulțumim pentru feedback! Se pare că ar fi util să luați legătura cu unul dintre agenții noștri de asistență Office.

×