Sortere IP-adresser i Access

Bemærk!: Vi vil gerne give dig den mest opdaterede hjælp, så hurtigt vi kan, på dit eget sprog. Denne side er oversat ved hjælp af automatisering og kan indeholde grammatiske fejl og unøjagtigheder. Det er vores hensigt, at dette indhold skal være nyttigt for dig. Vil du fortælle os, om oplysningerne var nyttige for dig, nederst på denne side? Her er artiklen på engelsk så du kan sammenligne.

Dette emne beskrives fremgangsmåden for sortering (Internetprotokol) adresser, der er gemt i en Access database.

Introduktion

Hvis du arbejder med IP-adresser, ved du formentlig allerede, at det ikke er lige så nemt som at arbejde med tekst eller tal/bogstaver. Dette skyldes, at en IP-adresse er i virkeligheden en samling af fire numeriske værdier, der er adskilt med et punktum (.), hvor hver værdi er et tal mellem 0 og 255. Den følgende tabel viser data, før en sorteringsrækkefølge er anvendt.

ComputerId

Medarbejder

Placering

IP-adresse

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

Sortere IP-adresser i Access er en udfordring, fordi Access ikke indeholder en speciel datatype til lagring af IP-adresser. Selvom en IP-adresse er bare en samling af tal, kan du ikke kan gemme en IP-adresser i et numerisk felt. Det skyldes et numerisk felt understøtter kun en enkelt decimal (.), mens en IP-adresse indeholder tre punktum (.). Det betyder, at du skal lagre adresserne i et tekstfelt.

Da du gemmer IP-adresser i et tekstfelt, kan du ikke bruge de indbyggede sorteringsknapper i Access til at sortere adresserne på en meningsfuld måde. Sortér-knapperne sortere altid værdier i et tekstfelt i alfabetisk rækkefølge, selvom tegnene, der er tal. Med andre ord, adresserne, der er sorteret efter det første ciffer, og derefter den anden ciffer og osv., i stedet for ved numeriske værdier, der udgør adressen. I følgende tabel vises adresserne fra den forrige tabel, der er sorteret i alfabetisk rækkefølge i feltet IP-adresse.

ComputerId

IP-adresse

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

De adresser, der starter med 1 vises før de adresser, der begynder med 2 osv. Den følgende tabel viser adresserne i den korrekte stigende rækkefølge.

ComputerId

IP-adresse

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

Hvis du vil gøre det nemmere at forstå trinnene til at sortere disse adresser, skal afbryde du IP-adresser i fire numeriske dele. Adresserne, der skal sorteres efter den første del, derefter til hver værdi i den første del, derefter efter den anden del, og så videre. Tabellen viser de enkelte dele i en anden kolonne og, fordi kolonnerne, der indeholder enkle numeriske værdier, det bliver muligt at sortere kolonnerne fra venstre mod højre i stigende rækkefølge, som vist i nedenstående tabel.

PartI

DelII

DelIII

DelIV

1

198

3

93

32

183

93

40

104

30

244

2

104

244

4

1

104

244

253

29

123

4

245

23

Sortering af de fire dele separat er Hemmeligheden bag sortering af IP-adresser. I den fremgangsmåde, der følger efter, kan du oprette en forespørgsel, der indeholder fire beregnede kolonner, hvor hver kolonne indeholder en del af adresseværdierne ud over feltet IP-adresse. Den første beregnede kolonne skal indeholde den første numeriske del af adressen, andet beregnede kolonne skal indeholde den anden numeriske del af den adresse, osv. I stedet for at sortere posterne efter feltet IP-adresse, bliver forespørgslen sortere posterne efter de fire beregnede kolonner.

Opret forespørgslen

Du skal oprette en udvælgelsesforespørgsel med navnet sorteret IP-adresseposterne, der viser posterne i stigende rækkefølge af IP-adresser. Forudsætter, at den aktuelle database har en tabel med navnet computeroplysninger, der indeholder et tekstfelt med navnet IP-adresse.

  1. Klik på Opret > forespørgselsdesign. Bemærk, at hvis du bruger Access 2007, klik på Forespørgselsdesign i gruppen andet under fanen Opret.

  2. Klik på computeroplysninger , og klik derefter på Tilføj i dialogboksen Vis tabel under fanen tabeller. Lukke dialogboksen.

  3. Træk felterne ComputerId og IP-adresse til forespørgslens designgitter.

  4. Du er nu klar til at tilføje de beregnede kolonner. Skriv udtrykket DelI i den første tomme kolonne til højre,: Val(venstre([IPAdresse],(InStr(1,[IPAdresse],".") -1))) i rækken felt. Udtrykket returnerer de tegn, før den første punktum (.) i feltet IP-adresse.

    Nu, gennemse derefter udtrykket. Fordi du ikke ved, hvor mange cifre udgør den første del af adressen, du bruger den funktionen InStr til at finde placeringen af den første periode. Trække 1 (for at udelade punktummet) returnerer antallet af cifre i den første del. Du kan derefter bruge dette nummer med den venstre funktionen til at udtrække så mange tegn begyndende fra tegnet længst til venstre, fra feltet IP-adresse. Til sidst skal du ringe til den funktionen Val til at konvertere de tegn, der returneres af funktionen Left til et tal. Det sidste trin er nødvendigt, da den underliggende datatype er tekst.

  5. Gemme forespørgslen ved at klikke på GemVærktøjslinjen Hurtig adgang. Det er en god ide at gøre dette efter hvert trin.

  6. Føje en kolonne til den anden adressedel. I kolonnen til højre for DelI skal du skrive DelII: Val(Mid([IPAdresse],InStr(1,[IPAdresse],".") +1,InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") -InStr(1,[IPAddress],".") -1)) i rækken felt. Udtrykket returnerer de tegn, der er placeret mellem det første og anden punktum i feltet IP-adresse.

    Igen, gennemse derefter udtrykket. Da du ikke ved, hvor mange cifre udgør den anden del af adressen eller præcis, hvor den anden del starter (fordi du ikke, hvor lang tid den første del er), kan du bruge funktionen InStr til at finde placeringen af perioderne. Du bruge den midt funktionen til at udtrække de tegn, der følger efter det første periode, men før den anden periode. Til sidst skal ringe du til funktionen Val for at konvertere de tegn, der er returneret af funktionen midt til et tal. Det sidste trin er nødvendigt, da den underliggende datatype er tekst.

  7. Føje en kolonne for den tredje adressedel. Skriv DelIII i kolonnen til højre for DelII: Val(Mid([IPAdresse],InStr(InStr(1,[IPAdresse],".") +1,[IPAddress],".") +1,InStr(InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") +1,[IPAddress],".") -InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") -1)) i rækken felt. Udtrykket returnerer de tegn, der er placeret mellem det andet og tredje punktum i feltet IP-adresse.

    Igen, gennemse derefter udtrykket. Da du ikke ved, hvor mange cifre udgør den tredje del af adressen eller præcis, hvor den tredje del starter (fordi du ikke ved, hvor lang tid den første og anden del er), kan du bruge funktionen InStr til at finde placeringen af perioderne. Derefter kan du bruge funktionen midt til at udtrække de tegn, der følger efter det andet punktum, men står foran det tredje punktum. Til sidst skal ringe du til funktionen Val for at konvertere de tegn, der er returneret af funktionen midt til et tal. Det sidste trin er nødvendigt, da den underliggende datatype er tekst.

  8. Føje en kolonne for den fjerde og sidste adressedel. Skriv DelIV i kolonnen til højre for DelIII: Val(højre([IPAdresse],Len([IPAdresse])-InStr(InStr(InStr(1,[IPAdresse],".") +1,[IPAddress],".") +1,[IPAddress],"."))) i rækken felt. Udtrykket returnerer de tegn, der følger efter den sidste periode.

    Igen, gennemse derefter udtrykket. Tasten er at finde placeringen af det tredje punktum og derefter udtrække alle de tegn, der følger efter den. Fordi du ikke kender præcis, hvor det tredje punktum er placeret, ringe du til funktionen InStr tre gange til at finde placeringen af den tredje periode. Du bruge den funktionen længde til at beregne antallet af cifre i den fjerde del. Antallet af cifre, der returneres bruges derefter med den højre funktionen til at udtrække så mange tegn fra højre del af feltet IP-adresse. Til sidst skal ringe du til funktionen Val for at konvertere de tegn, der er returneret af funktionen midt til et tal. Det sidste trin er nødvendigt, da den underliggende datatype er tekst.

  9. Angiv rækken Sorter for alle fire beregnede kolonner til stigende.

    Vigtige    Rækken Sortér i kolonnen IP-adresse skal være tomt.

    Hvis du vil sortere efter andre feltværdier, ud over adresserne, skal du markere felterne enten til højre eller venstre for alle fire beregnede kolonner. Placer ikke de andre sorteringsfelter mellem de beregnede kolonner.

  10. Næste trin er at skjule de fire beregnede kolonner fra dataarket. Men før du gør, Skift til dataarkvisning for at se resultatet af udtryk i de beregnede kolonner. Den følgende tabel viser kolonnerne, du får vist i dataarkvisning.

    ComputerId

    IP-adresse

    PartI

    DelII

    DelIII

    DelIV

    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. Skift tilbage til designvisning, og fjern markeringen i afkrydsningsfeltet i rækken Vis for alle fire beregnede kolonner. Dette forhindrer, at de beregnede kolonner vises i dataarkvisning.

  12. Du kan også angive kriterier for udelukke poster fra forespørgslen.

  13. Skift til dataarkvisning for at se posterne i sorteringsrækkefølge. Du får vist de poster, der er korrekt sorteret i stigende rækkefølge af IP-adresserne.

Flere anvendelser af sorterede IP-adresser

Validere IP-adresser under dataindtastning

Hvis du vil validere adresser uden at skrive kode, kan du gøre det til et begrænset omfang ved at angive egenskaben inputmaske i feltet til #. ##. ###. ###; 0; " " og egenskaben Format for feltet IP-adresse til & & & & & & & & & & & &.

Hvad gør inputmasken? Når du begynder at skrive i adressefeltet, inputmasken forhindrer dig i at indtaste tegn end tal og mellemrum mellem de tre perioder. Hvis en numerisk del er et tocifret tal, du udfylder det tredje ciffer eller skrive et mellemrum i stedet for. Bemærk, at denne inputmaske ikke advarer brugeren hvis han undlader at skrive en eller flere dele af adressen eller kun skriver mellemrum i stedet for en numerisk værdi. For eksempel "345.. 3. "skal accepteres som en gyldig adresse.

Hvad gør visningsformatet? Når du er færdig med at skrive og lad feltet være, visningsformatet fjerner mellemrum i adressen og viser blot tal og perioder. Hvis du har skrevet "354.35.2.12", adressen, der vises som "354.35.2.12". Bemærk, at hvis du klikker på i adressen, eller tryk på F2 (for at skifte til redigeringstilstand) når adressen er markeret, vises mellemrummene igen.

Tip!: Hvis du vil kopiere en adresse, flytte til den forrige kolonne eller et kontrolelement, tryk på TAB at vælge den formaterede adresse, og klik derefter på Kopiér. Ved at gøre dette, kan du ikke kopiere adressestrengen, der indeholder mellemrum.

Sortere poster i en formular eller rapport efter IP-adresser

Hvis du vil oprette en formular eller en rapport, som posterne, der er sorteret efter IP-adresser, skal du basere det nye objekt på en forespørgsel, der sorterer adresser som beskrevet tidligere, i stedet for på den tabel, der indeholder adresserne.

Toppen af siden

Udvid dine Office-færdigheder
Gå på opdagelse i kurser
Få nye funktioner først
Bliv Office Insider

Var disse oplysninger nyttige?

Tak for din feedback!

Tak for din feedback! Det lyder, som om det vil kunne hjælpe, hvis du bliver sat i forbindelse med en af vores Office-supportteknikere.

×