Sortere IP-adresser i Access

Obs!: Vi ønsker å gi deg det nyeste hjelpeinnholdet så raskt som mulig, på ditt eget språk. Denne siden er oversatt gjennom automatisering og kan inneholde grammatiske feil eller unøyaktigheter. Formålet vårt er at innholdet skal være nyttig for deg. Kan du fortelle oss om informasjonen var nyttig for deg nederst på denne siden? Her er den engelske artikkelen for enkel referanse.

Dette emnet beskriver fremgangsmåten for å sortere IP (Internet Protocol)-adresser som er lagret i en Access-database.

Innføring

Hvis du arbeider med IP-adresser, vet du sannsynligvis allerede at det ikke er like enkelt som å arbeide med tekst eller tall. Dette er fordi en IP-adressen er en samling av fire numeriske verdier atskilt med et punktum (.), der hver verdi er et tall mellom 0 og 255. Tabellen nedenfor viser data før en sorteringsrekkefølge brukes.

Maskin-ID

Employee

Plassering

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 utfordring fordi Access ikke har en spesiell datatype for lagring av IP-adresser. Selv om en IP-adressen er en samling tall, kan du ikke lagre en IP-adresser i et numerisk felt. Dette er fordi et numerisk felt støtter bare ett desimaltegn (.), mens en IP-adresse inneholder tre punktum (.). Dette betyr at du må lagre adressene i et tekstfelt.

Fordi du lagrer IP-adresser i et tekstfelt, kan du ikke bruke de innebygde sorteringsknappene i Access til å sortere adressene på en meningsfull måte. Sorter-knappene sortere alltid verdiene i et tekstfelt i alfabetisk rekkefølge, selv om tegnene er tall. Andre ord adressene er sortert etter det første sifferet, og deretter etter andre siffer, og så videre, i stedet for ved numeriske verdiene som utgjør adressen. Tabellen nedenfor viser adressene fra den forrige tabellen sortert i alfabetisk rekkefølge på feltet IP-adresse.

Maskin-ID

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

Adresser som begynner med 1 vises før adresser som begynner med 2 og så videre. Tabellen nedenfor viser adressene i riktig stigende rekkefølge.

Maskin-ID

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 gjøre det enklere å forstå hvordan adressene sorteres, kan du bryte IP-adressene i fire numeriske deler. Adressene må sorteres etter den første delen, deretter for hver verdi i den første delen, deretter etter den andre delen, og så videre. Tabellen viser hver del i en annen kolonne, og fordi kolonnene inneholder enkle numeriske verdier, blir det mulig å sortere kolonnene fra venstre mot høyre i stigende rekkefølge, som vist i tabellen nedenfor.

DelI

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

Sortere de fire delene separat er hemmeligheten bak sortere IP-adresser. I prosedyren som følger, oppretter du en spørring som inneholder fire beregnede kolonner, der hver kolonne inneholder en del av adresseverdiene i tillegg til IP-adresse-feltet. Den første beregnede kolonnen skal inneholde den første numeriske delen av adressen, andre beregnede kolonnen vil inneholde den andre numeriske delen av adressen og så videre. I stedet for å sortere postene etter feltet IP-adresse, vil spørringen sortere postene etter de fire beregnede kolonnene.

Opprette spørringen

Du vil opprette en utvalgsspørring kalt sorterte IP-adresser som viser postene i stigende rekkefølge etter IP-adresser. Anta at den gjeldende databasen har en tabell med navnet Maskindetaljer som inkluderer tekstfeltet IP-adresse.

  1. Klikk Opprett > spørringsutforming. Legg merke til at hvis du bruker Access 2007, klikk Spørringsutforming i annet-gruppen i kategorien Opprett.

  2. I dialogboksen Vis tabelltabeller-fanen klikker du Maskindetaljer og klikk deretter Legg til. Lukk dialogboksen.

  3. Dra feltene maskin-ID og IP-adresse til utformingsrutenettet for spørringen.

  4. Nå er du klar til å legge til de beregnede kolonnene. I den første tomme kolonnen til høyre, skriver du inn uttrykket DelI: Val(Left([IP-adresse],(InStr(1,[IP-adresse],".") -1))) i felt-raden. Uttrykket returnerer tegnene foran den første perioden (.) i feltet IP-adresse.

    Se gjennom uttrykket. Ettersom du ikke vet hvor mange sifre som utgjør den første delen av adressen, kan du bruke den InStr -funksjonen til å finne posisjonen til den første perioden. Trekker verdien 1 (Hvis du vil utelate perioden) returnerer antallet sifre i den første delen. Deretter bruker du dette tallet med den Left -funksjonen til å trekke ut tilsvarende antall tegn, og starter fra tegnet lengst til venstre, fra feltet IP-adresse. Til slutt du ringer til Val -funksjonen til å konvertere tegnene som returneres av Left -funksjonen til et tall. Det siste trinnet er nødvendig fordi den underliggende datatypen er tekst.

  5. Lagre spørringen ved å klikke LagreVerktøylinjen for hurtigtilgang. Det er lurt å gjøre dette etter hvert trinn.

  6. Legge til kolonnen for den andre adressedelen. I kolonnen til høyre for DelI, skriver du inn DelII: Val(Mid([IP-adresse],InStr(1,[IP-adresse],".") +1,InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") -InStr(1,[IPAddress],".") -1)) i felt-raden. Uttrykket returnerer tegnene som er plassert mellom første og andre punktum i feltet IP-adresse.

    Se gjennom uttrykket. Fordi du ikke vet hvor mange sifre som utgjør den andre delen av adressen eller nøyaktig hvor den andre delen starter (fordi du ikke hvor lenge den første delen er), kan du bruke InStr -funksjonen til å finne plasseringene til periodene. Deretter bruker du den Mid -funksjonen til å trekke ut tegnene som kommer etter den første periode men før den andre. Til slutt kan du kalle Val -funksjonen hvis du vil konvertere tegnene som returneres av Mid -funksjonen til et tall. Det siste trinnet er nødvendig fordi den underliggende datatypen er tekst.

  7. Legge til kolonnen for den tredje adressedelen. I kolonnen til høyre for DelII, skriver du inn DelIII: Val(Mid([IP-adresse],InStr(InStr(1,[IP-adresse],".") +1,[IPAddress],".") +1,InStr(InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") +1,[IPAddress],".") -InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") -1)) i felt-raden. Uttrykket returnerer tegnene som er plassert mellom andre og tredje punktum i feltet IP-adresse.

    Se gjennom uttrykket. Fordi du ikke vet hvor mange sifre som utgjør den tredje delen av adressen eller nøyaktig hvor den tredje delen starter (fordi du ikke vet hvor lenge den første og andre delen er), kan du bruke InStr -funksjonen til å finne plasseringene til periodene. Deretter kan du bruke Mid -funksjonen til å trekke ut tegnene som kommer andre periode, men før den tredje perioden. Til slutt kan du kalle Val -funksjonen hvis du vil konvertere tegnene som returneres av Mid -funksjonen til et tall. Det siste trinnet er nødvendig fordi den underliggende datatypen er tekst.

  8. Legge til kolonnen for den fjerde og siste adressedelen. I kolonnen til høyre for DelIII, skriver du inn DelIV: Val(Right([IP-adresse],Len([IP-adresse])-InStr(InStr(InStr(1,[IP-adresse],".") +1,[IPAddress],".") +1,[IPAddress],"."))) i felt-raden. Uttrykket returnerer tegnene som kommer etter den siste perioden.

    Se gjennom uttrykket. Nøkkelen, er å finne plasseringen til den tredje perioden og Pakk ut alle tegnene som kommer etter den. Fordi du ikke vet nøyaktig hvor den tredje perioden er plassert, kaller InStr -funksjonen tre ganger for å finne posisjonen til den tredje perioden. Deretter bruker du den lengde -funksjonen til å beregne antall sifre i den fjerde delen. Antall sifre som returneres brukes deretter med de høyre -funksjonen til å trekke ut tilsvarende antall tegn fra høyre del av feltet IP-adresse. Til slutt kan du kalle Val -funksjonen hvis du vil konvertere tegnene som returneres av Mid -funksjonen til et tall. Det siste trinnet er nødvendig fordi den underliggende datatypen er tekst.

  9. Angi Sorter-raden i alle fire beregnede kolonner til Stigende.

    Viktig    Sorter-raden i kolonnen IP-adresse må være tom.

    Hvis du vil sortere etter andre feltverdier i tillegg til adressene, plasserer du feltene enten til venstre eller høyre for alle fire beregnede kolonner. Ikke Plasser andre sorteringsfelt mellom de beregnede kolonnene.

  10. Neste trinn er å skjule de fire beregnede kolonnene fra dataarket. Men før du gjør dette, Bytt til dataarkvisning vise Hvis du vil se resultatet av uttrykkene i beregnede kolonner. Tabellen nedenfor viser kolonnene du vil se i dataarkvisning.

    Maskin-ID

    IP-adresse

    DelI

    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. Gå tilbake til utformingsvisning, og fjern merket for Vis-raden på alle fire beregnede kolonner. Dette hindrer at de beregnede kolonnene vises i dataarkvisning.

  12. Du kan også angi vilkår for å utelate poster fra spørringen.

  13. Bytt til dataarkvisning for å se postene i sortert rekkefølge. Du vil se postene riktig sortert i stigende rekkefølge etter IP-adresser.

Flere bruksområder for sorterte IP-adresser

Validere IP-adressene under dataregistrering

Hvis du vil validere adresser uten å skrive kode, kan du gjøre dette til en viss grad ved hjelp av egenskapen inndatamaske for feltet til #. ###. ###. ###; 0; " " og Format -egenskapen for feltet IP-adressen til & & & & & & & & & & & &.

Hva gjør inndatamasken? Når du begynner å skrive i Adresse-feltet, inndatamasken hindrer deg i å skrive inn tegn enn tall og mellomrom mellom de tre periodene. Hvis en numerisk del er et tosifret tall, la det tredje sifferet stå tomt, eller Skriv inn et mellomrom i stedet. Vær oppmerksom på at denne inndatamasken ikke advarer brukeren hvis vedkommende hopper over én eller flere deler av adressen, eller skriver inn bare mellomrom i stedet for en numerisk verdi. Hvis du for eksempel "345.. 3. "ville godtas som en gyldig adresse.

Hva gjør visningsformatet? Når du har skrevet inn, og la feltet stå, visningsformatet fjerner mellomrommene i adressen og viser bare tall og perioder. Hvis du skrev inn "354.35.2.12", vises adressen som "354.35.2.12". Vær oppmerksom på at hvis du klikker i adressen, eller trykker F2 (for å gå inn i redigeringsmodus) når adressen er valgt, mellomrommene vises.

Tips!: Hvis du vil kopiere en adresse, flytter du til den forrige kolonnen eller kontrollen, trykker du TAB å merke den formaterte adressen, og klikk deretter Kopier. Gjør dette, vil du ikke kopiere adressestrengen som inneholder mellomrom.

Sortere poster i et skjema eller en rapport etter IP-adresser

Hvis du må opprette et skjema eller en rapport som postene er sortert etter IP-adresser, basere det nye objektet på en spørring som sorterer adressene som beskrevet tidligere, i stedet for på tabellen som inneholder adressene.

Til toppen av siden

Bli bedre på Office
Utforsk opplæring
Vær først ute med de nye funksjonene
Bli med i Office Insiders

Var denne informasjonen nyttig?

Takk for tilbakemeldingen!

Takk for tilbakemeldingen! Det høres ut som det kan være lurt å sette deg i kontakt med én av våre Office-kundestøtteagenter.

×