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 beskriver proceduren til sortering af IP-adresser (Internet Protocol), der er gemt i en _Z0Z_ -database.

Introduktion

Hvis du arbejder med IP-adresser, kender du sandsynligvis allerede, at det ikke er så ligetil, som du arbejder med tekst eller tal. Dette skyldes, at en IP-adresse virkelig er en samling af fire numeriske værdier adskilt med et punktum (.), hvor hver værdi er et tal mellem 0 og 255. Den følgende tabel viser data, før der anvendes en sorteringsrækkefølge.

MachineID

Arbejder

Placering

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

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

Da du gemmer IP-adresser i et tekstfelt, kan du ikke bruge de indbyggede sorterings knapper i Access til at sortere adresserne på en beskrivende måde. Sorteringsknapperne sorterer altid værdier i et tekstfelt i alfabetisk rækkefølge, også selvom tegnene er tal. Med andre ord sorteres adresserne efter det første ciffer, derefter efter det andet ciffer osv. i stedet for de numeriske værdier, der udgør adressen. I følgende tabel vises adresserne fra den forrige tabel sorteret i alfabetisk rækkefølge i feltet IPAdresse.

MachineID

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

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

MachineID

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

For at gøre det nemmere at forstå de trin, der er involveret i sortering af disse adresser, bryder du IP-adresserne i fire numeriske dele. Adresserne skal sorteres efter den første del, derefter for hver værdi i den første del, derefter efter den anden del osv. Tabellen viser hver del i en anden kolonne, og fordi kolonnerne indeholder simple numeriske værdier, bliver kolonnerne muligt at sortere kolonnerne fra venstre mod højre i stigende rækkefølge, sådan som det er vist i den følgende tabel.

PartI

PartII

PartIII

PartIV

1

198

3

93

32

183

93

40

104

mindst

244

2

104

244

4

1

104

244

253

29

123

4

245

s

Sortering af de fire dele separat er stikket bag at sortere IP-adresser. I fremgangsmåden nedenfor opretter du en forespørgsel, der ud over feltet IP-adresse indeholder fire beregnede kolonner, hvor hver kolonne gemmer en del af adresse værdierne. Den første beregnede kolonne indeholder den første numeriske del af adressen, den anden beregnede kolonne, der indeholder den anden numeriske del af adressen osv. I stedet for at sortere posterne efter feltet IPAdresse, vil forespørgslen sortere posterne efter de fire beregnede kolonner.

Opret forespørgslen

Du skal oprette en udvælgelsesforespørgsel med navnet sorterede IP-adresser, der viser posterne i stigende rækkefølge af IP-adresser. Antag, at den aktuelle database indeholder en tabel med navnet MachineDetails, der indeholder et tekstfelt med navnet IPAddress.

  1. Klik på Opret forespørgsels designfor >. 

  2. Klik på MachineDetails på fanen tabeller i dialogboksen Vis tabel , og klik derefter på Tilføj. Luk dialogboksen.

  3. Træk felterne MachineID og IPAdresse til forespørgselsdesigngitteret.

  4. Du er nu klar til at tilføje de beregnede kolonner. I den første tomme kolonne til højre skal du skrive udtrykket PartI: Val (Left ([IPAdresse]; (InStr (1; [IPAdresse]; ".") -1))) i rækken felt . Udtrykket returnerer de tegn, der ligger før det første punktum (.) i feltet IPAdresse.

    Gennemse derefter udtrykket. Da du ikke ved, hvor mange cifre der udgør den første del af adressen, skal du bruge funktionen InStr til at finde placeringen af den første periode. Hvis du subtraherer 1 (for at udelade punktummet), returneres antallet af cifre i den første del. Du kan derefter bruge dette nummer sammen med funktionen venstre til at udtrække det antal tegn, der starter fra tegnet længst til venstre, fra feltet IPAdresse. Til sidst ringer du til funktionen Val for at konvertere de tegn, der returneres af funktionen Left , til et tal. Det sidste trin er nødvendigt, fordi den underliggende datatype er tekst.

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

  6. Tilføj kolonnen for den anden adresseside. I kolonnen til højre for PartI skal du skrive Partii: Val (MID ([IPAdresse], InStr (1; [IPAdresse]; ".") + 1, InStr (InStr (1; [IPAdresse]; ".") + 1, [IPAdresse]; ".") -InStr (1; [IPAdresse]; ".") -1)) i rækken felt . Udtrykket returnerer de tegn, der er placeret mellem første og andet punktum i feltet IPAdresse.

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

  7. Tilføj kolonnen for tredje adresse delen. I kolonnen til højre for PartII skal du skrive PartIII: Val (MID ([IPAdresse], InStr (InStr (1; [IPAdresse]; ".") + 1, [IPAdresse]; ".") + 1, InStr (InStr (InStr (1; [IPAdresse]; ".") + 1, [IPAdresse]; ".") + 1, [IPAdresse]; ".") -InStr (InStr (1; [IPAdresse]; ".") + 1, [IPAdresse]; ".") -1)) i rækken felt . Udtrykket returnerer de tegn, der er placeret mellem det andet og tredje punktum i feltet IPAdresse.

    Gennemse derefter udtrykket. Da du ikke ved, hvor mange cifre der udgør den tredje del af adressen eller præcist, hvor den tredje del starter (fordi du ikke ved, hvor længe den første og anden del er), skal du bruge funktionen InStr til at finde placeringen af perioderne. Du kan derefter bruge funktionen Mid til at udtrække de tegn, der følger efter den anden periode, men før den tredje periode. Til sidst ringer du til funktionen Val for at konvertere de tegn, der returneres af funktionen Mid , til et tal. Det sidste trin er nødvendigt, fordi den underliggende datatype er tekst.

  8. Tilføje kolonnen for den fjerde og sidste adresse del. I kolonnen til højre for PartIII skal du skrive PartIV: Val (Right ([IPAdresse], len ([IPAdresse])-InStr (InStr (InStr (1; [IPAdresse]; ".") + 1, [IPAdresse]; ".") + 1, [IPAdresse]; ".") ) i rækken felt . Udtrykket returnerer de tegn, der følger efter den sidste periode.

    Gennemse derefter udtrykket. Nøglen er at finde placeringen af den tredje periode og derefter udtrække alle de tegn, der følger efter den. Da du ikke ved præcist, hvor den tredje periode er placeret, kan du ringe til funktionen InStr tre gange for at finde placeringen af den tredje periode. Derefter skal du bruge funktionen længde til at beregne antallet af cifre i den fjerde del. Antallet af cifre, der returneres, bruges derefter med funktionen højre til at udtrække det antal tegn fra den højre del af feltet IPAdresse. Til sidst ringer du til funktionen Val for at konvertere de tegn, der returneres af funktionen Mid , til et tal. Det sidste trin er nødvendigt, fordi den underliggende datatype er tekst.

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

    Kunde    Sorterings rækken for kolonnen IPAdresse skal være tom.

    Hvis du vil sortere efter andre feltværdier, skal du ud over adresserne sætte felterne til venstre eller højre for alle fire beregnede kolonner. Undlad at sætte de andre sorteringsfelter mellem de beregnede kolonner.

  10. Det næste trin er at skjule de fire beregnede kolonner fra dataarket. Men før du gør det, skal du skifte til dataarkvisning for at se resultatet af udtrykkene i de beregnede kolonner. I følgende tabel vises de kolonner, du kan se i dataarkvisning.

    MachineID

    IP

    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

    mindst

    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

    s

  11. Skift tilbage til design visning, 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 at udelukke poster fra forespørgslen.

  13. Skift til dataarkvisning for at få vist posterne i sorteret rækkefølge. Du får vist posterne korrekt sorteret i stigende rækkefølge for IP-adresserne.

Flere anvendelser af sorterede IP-adresser

Valider IP-adresser under dataindtastning

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

Hvad gør inputmasken? Når du begynder at skrive i feltet adresse, forhindrer inputmasken dig i at angive andre tegn end tal og mellemrum mellem de tre punktummer. Hvis en numerisk del er et dobbelt cifret tal, skal du lade tredje cifre være tomt eller skrive et mellemrum i stedet. Bemærk, at denne inputmaske ikke advarer brugeren, hvis han springer skrive en eller flere dele af adressen eller kun skriver mellemrum i stedet for en numerisk værdi. For eksempel "345. 2. "ville være godkendt som en gyldig adresse.

Hvad gør visningsformatet? Når du er færdig med at skrive og forlade feltet, fjerner visningsformatet mellemrum i adressen og viser kun tal og punktummer. Hvis du har skrevet "354,35 .2 .12", vises adressen som "354.35.2.12". Bemærk, at hvis du klikker i adressen, eller du trykker på F2 (for at åbne redigeringstilstand), når adressen er markeret, vises mellemrumene igen.

Tip!: Hvis du vil kopiere en adresse, skal du gå til den forrige kolonne eller det forrige kontrolelement, trykke på TAB for at vælge den formaterede adresse og derefter klikke på Kopiér. Hvis du gør dette, skal du ikke kopiere den adresse streng, der indeholder mellemrum.

Sortere poster i en formular eller rapport efter IP-adresser

Hvis du har brug for at oprette en formular eller en rapport, hvor posterne er sorteret efter IP-adresser, skal du basere det nye objekt på en forespørgsel, der sorterer adresser som tidligere beskrevet, 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.

×