IP-adressen sorteren

Opmerking:  We willen u graag zo snel mogelijk de meest recente Help-inhoud in uw eigen taal bieden. Deze pagina is automatisch vertaald en kan grammaticale fouten of onnauwkeurigheden bevatten. Wij hopen dat deze inhoud nuttig voor u is. Kunt u ons onder aan deze pagina laten weten of de informatie nuttig voor u was? Hier is het Engelstalige artikel ter referentie.

In dit onderwerp wordt de procedure beschreven voor het sorteren van IP (Internet Protocol)-adressen die zijn opgeslagen in een Microsoft Office Access 2007-database.

In dit artikel

Inleiding

De query maken

Meer mogelijkheden voor gesorteerde IP-adressen

Inleiding

Als u werkt met IP-adressen weet u waarschijnlijk al dat het niet zo eenvoudig is als werken met tekst of getallen. Dit komt omdat een IP-adres eigenlijk een verzameling is van vier numerieke waarden, gescheiden door een punt (.), waarbij elke waarde een getal is tussen 0 en 255. In de volgende tabel ziet u de gegevens voordat een sorteervolgorde is toegepast.

MachineID

Werknemer

Locatie

IPAdres

2,5

...

...

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


Het sorteren van IP-adressen in Access is moeilijk omdat Access geen speciaal gegevenstype biedt voor het opslaan van IP-adressen. Hoewel een IP-adres slechts een verzameling getallen is, kunt u een IP-adres niet opslaan in een numeriek veld. Dit komt omdat een numeriek veld niet meer dan één decimale komma of punt kan bevatten, terwijl een IP-adres drie punten (.) bevat. Dit betekent dat u de adressen in een tekstveld moet opslaan.

Omdat u IP-adressen in een tekstveld moet opslaan, kunt u geen gebruikmaken van de ingebouwde sorteerknoppen in Access om de adressen op een betekenisvolle manier te sorteren. Met de sorteerknoppen worden waarden in een tekstveld altijd op alfabetische volgorde gesorteerd, zelfs als de tekens getallen zijn. Met andere woorden, de adressen worden gesorteerd op het eerste nummer, daarna op het tweede nummer, enzovoort, in plaats van op de numerieke waarden waaruit het adres bestaat. In de volgende tabel worden de adressen uit de vorige tabel op alfabetische volgorde op het veld IPAdres gesorteerd.

MachineID

IPAdres

3

1.198.3.93

2

104.244.253.29

6

104.244.4.1

5

104.30.244.2

2,5

123.4.245.23

4

32.183.93.40


De adressen die beginnen met 1 worden weergegeven vóór de adressen die beginnen met 2, enzovoort. In de volgende tabel worden de adressen in de juiste oplopende volgorde weergegeven.

MachineID

IPAdres

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

2,5

123.4.245.23


Als u de stappen die zijn gemoeid met het sorteren van deze adressen beter wilt begrijpen, moet u de IP-adressen opbreken in vier numerieke delen. De adressen moeten eerst op het eerste deel worden gesorteerd, vervolgens op elke waarde in het eerste deel, daarna op het tweede deel, enzovoort. In de tabel wordt elk deel in een andere kolom weergegeven en, omdat de kolommen eenvoudige numerieke waarden bevatten, is het mogelijk om de kolommen van links naar rechts in oplopende volgorde te sorteren, zoals in de volgende tabel wordt weergegeven.

DeelI

DeelII

DeelIII

DeelIV

2,5

198

3

93

32

183

93

40

104

30

244

2

104

244

4

2,5

104

244

253

29

123

4

245

5


De kunst van het sorteren van IP-adressen zit hem in het scheiden van de vier delen. In de volgende procedure maakt u een query met, naast het IP-adresveld, vier berekende kolommen met elk een deel van de adreswaarde. De eerste berekende kolom bevat het eerste numerieke deel van het adres, de tweede berekende kolom bevat het tweede numerieke deel van het adres, enzovoort. In plaats van de records te sorteren op het veld IPAdres, zal de query de records sorteren op de vier berekende kolommen.

Naar boven

De query maken

U maakt een selectiequery met de naam Gesorteerde IPAdressen, waarmee de records in oplopende volgorde van IP-adressen worden gesorteerd. Stel dat de huidige database een tabel heeft met de naam MachineDetails en een tekstveld bevat met de naam IPAdres.

  1. Klik op het tabblad Maken, in de groep Overige, op Queryontwerp.

  2. Klik in het dialoogvenster Tabel weergeven op het tabblad Tabellen, klik op MachineDetails en vervolgens op Toevoegen. Sluit het dialoogvenster.

  3. Sleep de velden MachineID en IPAdres naar het ontwerpraster van de query.

  4. U bent nu klaar om de berekende kolommen. Typ in de eerste lege kolom aan de rechterkant de expressie DeelI: Val(Left([IPAdres],(InStr(1,[IPAdres],".") -1))) in de rij veld . De expressie retourneert de tekens die vóór de eerste punt (.) in het veld IP-adres.

    Nu kunnen we de expressie bekijken. Omdat u niet hoeveel cijfers Vul het eerste deel van het adres weet, gebruikt u de InStr -functie om de positie van de eerste periode te vinden. 1 af te trekken (naar uitsluiten van de termijn) geeft als resultaat het aantal cijfers in het eerste gedeelte. U gebruikt dit nummer met het de functie Left worden geëxtraheerd zoveel tekens vanaf de meest linkse teken, het veld IP-adres. Tot slot dat u belt de functie Val de tekens die het resultaat van de functie Left in een getal wilt omzetten. Deze laatste stap is nodig omdat het onderliggende gegevenstype tekst is.

  5. Sla de query op door op Opslaan te klikken in de Werkbalk Snelle toegang. Het is een goed idee om dit na elke tussenliggende stap te doen.

  6. De kolom voor het tweede onderdeel adres toevoegen. Typ in de kolom rechts van DeelI DeelII: Val(Mid([IPAdres],InStr(1,[IPAdres],".") +1,InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") -InStr(1,[IPAddress],".") -1)) in de rij veld . De expressie retourneert de tekens die zich bevinden tussen de eerste en tweede punt in het veld IP-adres.

    Nogmaals, Controleer de expressie. Omdat u niet weet hoeveel cijfers waaruit de het tweede deel van het adres of exact waarop het tweede onderdeel begint (omdat u niet hoe lang het deel achter de eerste is), kunt u de functie InStr gebruiken om de posities van de punten. U gebruikt de Mid , functie voor het extraheren van de tekens die volgen na de eerste punt en vóór de tweede punt. Ten slotte, belt u de functie Val als u de tekens die het resultaat van de functie Mid naar getallen converteren. Deze laatste stap is nodig omdat het onderliggende gegevenstype tekst is.

  7. De kolom voor het derde onderdeel van het adres toevoegen. Typ in de kolom rechts van DeelII DeelIII: Val(Mid([IPAdres],InStr(InStr(1,[IPAdres],".") +1,[IPAddress],".") +1,InStr(InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") +1,[IPAddress],".") -InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") -1)) in de rij veld . De expressie retourneert de tekens die zich bevinden tussen de tweede en derde punt in het veld IP-adres.

    Laten we de expressie opnieuw bekijken. Omdat u niet weet uit hoeveel tekens het derde deel van het adres bestaat en waar het derde deel precies begint (want u weet niet hoe lang het eerste en het tweede deel zijn), gebruikt u de functie InStr om de posities van de punten te bepalen. Vervolgens gebruikt u de functie Mid om de tekens te onttrekken die volgen na de tweede punt en die vóór de derde punt staan. Tenslotte roept u de functie Val op om de tekens die het resultaat zijn van de functie Mid om te zetten in een getal. Deze laatste stap is nodig omdat het onderliggende gegevenstype Tekst is.

  8. De kolom voor het deel van het vierde en laatste adres toevoegen. Typ in de kolom rechts van DeelIII DeelIV: Val(Right([IPAdres],Len([IPAdres])-InStr(InStr(InStr(1,[IPAdres],".") +1,[IPAddress],".") +1,[IPAddress],"."))) in de rij veld . De expressie retourneert de tekens die volgen na de laatste periode.

    Nogmaals, Controleer de expressie. De sleutel is om te zoeken naar de locatie van de derde periode en vervolgens extraheren alle tekens die volgen. Omdat u niet precies waarin de derde periode zich bevindt weet, belt u op de functie InStr drie keer om de positie van de derde punt te vinden. U gebruikt de Len , functie voor het berekenen van het aantal cijfers in het vierde deel. Het aantal cijfers geretourneerd vervolgens wordt gebruikt met de Right , functie voor het uitpakken zoveel tekens uit het juiste deel van het veld IP-adres. Ten slotte, belt u de functie Val als u de tekens die het resultaat van de functie Mid naar getallen converteren. Deze laatste stap is nodig omdat het onderliggende gegevenstype tekst is.

  9. Stel de rij Sorteren voor alle vier berekende kolommen in op Oplopend.

    Belangrijk    De rij Sorteren van de kolom IPAdres moet leeg blijven.

    Als u naast de adressen op andere veldwaarden wilt sorteren, plaatst u de velden links of rechts van alle vier de berekende kolommen. Plaats geen andere sorteervelden tussen de berekende kolommen.

  10. De volgende stap is het verbergen van de vier berekende kolommen in het gegevensblad. Maar voordat u dat doet, schakelt u over naar de gegevensbladweergave om de resultaten van de expressies in de berekende kolommen weer te geven. In de volgende tabel worden de kolommen die u ziet in de gegevensbladweergave weergegeven.

MachineID

IPAdres

DeelI

DeelII

DeelIII

DeelIV

3

1.198.3.93

2,5

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

2,5

2

104.244.253.29

104

244

253

29

2,5

123.4.245.23

123

4

245

5

  1. Schakel terug naar de ontwerpweergave en schakel het selectievakje in de rij Weergeven uit voor alle vier de berekende kolommen. Hiermee voorkomt u dat de berekende kolommen worden weergegeven in de gegevensbladweergave.

  2. U kunt eventueel ook criteria opgeven voor het uitsluiten van records in de query.

  3. Schakel over naar de gegevensbladweergave om de records in gesorteerde volgorde te bekijken. U ziet de records op de juiste wijze gesorteerd in oplopende volgorde van de IP-adressen.

Naar boven

Meer mogelijkheden voor gesorteerde IP-adressen

IP-adressen valideren tijdens het invoeren

Als u adressen valideren wilt-code te schrijven, kunt u doen in een beperkte mate door in te stellen van de eigenschap invoermasker van het veld toe aan #. ###. ###. ###; 0; " " en de eigenschap notatie van het veld IP-adres naar & & & & & & & & & & & &.

Wat doet het invoermasker? Wanneer u gegevens invoert in het adresveld, voorkomt het invoermasker dat u andere tekens dan getallen of spaties kunt invoeren tussen de drie punten. Als een numeriek deel slechts uit twee getallen bestaat, laat u het derde getal leeg of typt u in plaats daarvan een spatie. Let op dat dit invoermasker de gebruiker niet waarschuwt als een of meer delen van het adres worden overgeslagen, of als alleen maar spaties worden ingevoerd in plaats van numerieke waarden. Bijvoorbeeld, "345. .3. " zou worden beschouwd als een geldig adres.

Wat doet een notatie? Als u klaar bent met invoeren en u verlaat het veld, verwijdert de notatie de spaties in het adres en worden alleen de getallen en punten weergegeven. Als u dus "354.35 .2 .12 " hebt ingevoerd, zal het adres worden weergegeven als "354.35.2.12". Let op dat als u in het adres klikt of op F2 drukt (om de bewerkingsmodus te activeren) terwijl het adres is geselecteerd, de spaties weer worden weergegeven.

Tip: Als u een adres wilt kopiëren, gaat u naar de vorige kolom of het vorige besturingselement, drukt u op TAB om het opgemaakte adres te selecteren, en klikt u op Kopiëren. Op deze manier kopieert u de adrestekenreeks zonder eventuele spaties.

Records in een formulier of rapport sorteren op IP-adres

Als u een formulier of een rapport moet maken waarin de records zijn gesorteerd op IP-adres, baseert u het nieuwe object op een query waarmee de adressen op de bovenstaande wijze worden gesorteerd, in plaats van op de tabel waarin de adressen zijn opgeslagen.

Naar boven

Uw Office-vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Office Insiders

Was deze informatie nuttig?

Bedankt voor uw feedback.

Hartelijk dank voor uw feedback! Het lijkt ons een goed idee om u in contact te brengen met een van onze Office-ondersteuningsagents.

×