Sortowanie adresów IP

Ważne : Ten artykuł został przetłumaczony maszynowo, zobacz zastrzeżenie. Angielskojęzyczną wersję tego artykułu można znaleźć tutaj .

W tym temacie opisano procedurę sortowania adresów IP przechowywanych w bazie danych programu Microsoft Office Access 2007.

W tym artykule

Wprowadzenie

Tworzenie kwerendy

Zastosowanie posortowanych adresów IP

Wprowadzenie

Posługiwanie się adresami IP nie jest równie proste jak praca z tekstem czy liczbami. Jest tak dlatego, że adres IP stanowi kolekcję czterech wartości liczbowych, oddzielonych kropką (.), z których każda zawiera się w przedziale od 0 do 255. W tabeli poniżej przedstawiono dane przed procesem sortowania.

IDKomputera

Pracownik

Lokalizacja

AdresIP

2,54

...

...

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


Sortowanie adresów IP w programie Microsoft Access jest trudne, ponieważ program Microsoft Access nie posiada specjalnego typu danych do przechowywania adresów IP. Adres IP jest kolekcją wartości liczbowych, lecz adresów IP nie można przechowywać w polach liczbowych. Jest tak dlatego, że pole liczbowe obsługuje tylko pojedynczy separator dziesiętny (.), podczas gdy adres IP zawiera trzy kropki (.). Oznacza to, że adresy IP należy przechowywać w polu tekstowym.

Ponieważ adresy IP są przechowywane w polu tekstowym, do sortowania nie można używać przycisków wbudowanych w programie Access. Przyciski sortowania zawsze sortują wartości pola tekstowego w kolejności alfabetycznej, nawet jeśli znaki są liczbami. Inaczej mówiąc, adresy IP są sortowane według pierwszej cyfry, następnie według drugiej i tak dalej, a nie według rzeczywistych wartości składających się na adres. W tabeli poniżej pokazano adresy IP z poprzedniej tabeli, które zostały posortowane alfabetycznie według pola AdresIP.

IDKomputera

AdresIP

3

1.198.3.93

2

104.244.253.29

6

104.244.4.1

5

104.30.244.2

2,54

123.4.245.23

4

32.183.93.40


Adresy rozpoczynające się od cyfry 1 są wyświetlane przed adresami zaczynającymi się od cyfry 2 itd. W tabeli poniżej przedstawiono adresy posortowane prawidłowo w kolejności rosnącej.

IDKomputera

AdresIP

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,54

123.4.245.23


Aby łatwiej zrozumieć sortowanie adresów, należy podzielić adres IP na cztery części liczbowe. Adresy mają zostać posortowane według pierwszej części, następnie według drugiej części dla każdej wartości w pierwszej części itd. Tabela przedstawia każdą część adresu w oddzielnej kolumnie. Ponieważ kolumny zawierają proste wartości liczbowe, możliwe jest posortowanie kolumn od lewej do prawej w kolejności rosnącej, jak pokazano w tabeli.

CzęśćI

CzęśćII

CzęśćIII

CzęśćIV

2,54

198

3

93

32

183

93

40

104

30

244

2

104

244

4

2,54

104

244

253

29

123

4

245

23


Metoda sortowania adresów IP polega na sortowaniu czterech oddzielnych części. W procedurze poniżej zostanie utworzona kwerenda, która oprócz pola adresu IP zawiera cztery kolumny obliczeniowe, z których każda przechowuje część adresu IP. Pierwsza kolumna obliczeniowa będzie zawierać pierwszą liczbową część adresu, druga kolumna obliczeniowa — drugą liczbową część adresu itd. Zamiast sortować rekordy według pola AdresIP kwerenda posortuje rekordy według czterech kolumn obliczeniowych.

Początek strony

Tworzenie kwerendy

Utworzysz kwerendę wybierającą o nazwie Posortowane Adresy IP, która będzie wyświetlać rekordy adresów IP w kolejności rosnącej. Załóżmy, że bieżąca baza danych zawiera tabelę o nazwie DaneKomputera, w której znajduje się pole tekstowe o nazwie AdresIP.

  1. Na karcie Tworzenie w grupie Inne kliknij przycisk Projekt kwerendy.

  2. W oknie dialogowym Pokazywanie tabeli na karcie Tabele kliknij tabelę DaneKomputera a następnie kliknij przycisk Dodaj. Zamknij okno dialogowe.

  3. Przeciągnij pole IDKomputera oraz pole AdresIP na siatkę projektu kwerendy.

  4. Teraz możesz przystąpić do dodawania kolumn obliczeniowych. W pierwszej pustej kolumnie po prawej stronie wpisz wyrażenie CzęśćI: Val(Left([IPAddress],(InStr(1,[IPAddress],".") -1))) w wierszu pole. Wyrażenie zwraca znaki poprzedzające pierwszą kropkę (.) w polu adres IP.

    Przyjrzyj się ponownie wyrażeniu. Ponieważ nie wiesz, ile cyfr składa się na pierwszą część adresu, należy użyć funkcja InStr , aby znaleźć pozycję pierwszego okresu. Odjęcie 1 (aby nie uwzględniać kropki) zwraca liczbę cyfr w pierwszej części. Następnie należy użyć ten numer funkcji Left , aby wyodrębnić określoną liczbę znaków, rozpoczynając od znaku po lewej stronie, w polu adres IP. Na koniec połączeń funkcji Val do konwertowania znaki zwrócone przez funkcję lewej na liczbę. Ten ostatni krok jest konieczne, ponieważ odpowiedniego typu danych jest tekstem.

  5. Zapisz kwerendę, klikając przycisk Zapisz na pasku narzędzi Szybki dostęp. Warto zrobić to po wykonaniu każdej pośredniej czynności.

  6. Dodaj kolumnę dla drugiej części adresu. W kolumnie po prawej stronie CzęśćI, wpisz PartII: Val(Mid([AdresIP],InStr(1,[AdresIP],".") +1,InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") -InStr(1,[IPAddress],".") -1)) w wierszu pole. Wyrażenie zwraca znaki znajdujące się między pierwszą i drugą kropką w polu adres IP.

    Przyjrzyj się ponownie wyrażeniu. Ponieważ nie wiadomo, ile cyfr składające się na drugiej części adres lub dokładnie miejsce, w którym drugiej części zaczyna się (gdyż nie się, jak długo trwa pierwsza część), należy użyć funkcji InStr , aby znaleźć pozycje kropek. Następnie należy użyć funkcja Mid , aby wyodrębnić znaki występujące po tym pierwszego okresu ale drugą kropką. Na koniec połączenia funkcji Val do konwertowania znaki zwrócone przez funkcję Mid na liczbę. Ten ostatni krok jest konieczne, ponieważ odpowiedniego typu danych jest tekstem.

  7. Dodaj kolumnę dla trzeciej części adresu. W kolumnie po prawej stronie PartII, wpisz CzęśćIII: Val(Mid([IPAddress],InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") +1,InStr(InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") +1,[IPAddress],".") -InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") -1)) w wierszu pole. Wyrażenie zwraca znaki znajdujące się między okresami drugiego i trzeciego w polu adres IP.

    Przyjrzyj się ponownie wyrażeniu. Ponieważ nie wiadomo, ile cyfr składa się na trzecią część adresu i gdzie dokładnie zaczyna się trzecia część (gdyż nie wiadomo, jak długa jest druga część), należy użyć funkcji InStr, aby znaleźć pozycje kropek. Następnie należy użyć funkcji Mid, aby wyodrębnić znaki znajdujące się między drugą i trzecią kropką. Na koniec należy wywołać funkcję Val, aby przekonwertować znaki zwrócone przez funkcję Mid na wartość liczbową. Ten ostatni krok jest niezbędny, ponieważ wyjściowym typem danych jest Tekst.

  8. Dodaj kolumnę dla części czwartej adresu. W kolumnie po prawej stronie CzęśćIII, wpisz CzęśćIV: Val(Right([IPAddress],Len([IPAddress])-InStr(InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") +1,[IPAddress],"."))) w wierszu pole. Wyrażenie zwraca znaki występujące po tym ostatnim okresem.

    Przyjrzyj się ponownie wyrażeniu. Należy znaleźć lokalizację trzeci okres, a następnie wyodrębnić wszystkie znaki występujące po niej. Ponieważ nie wiadomo dokładnie, gdzie znajduje się trzecia kropka, możesz zadzwonić funkcji InStr trzy razy położenie trzeciego okresu. Następnie należy użyć funkcji , aby obliczyć liczbę cyfr w czwartej części. Liczba cyfr, zwracany jest następnie używana funkcja prawo , aby wyodrębnić określoną liczbę znaków z prawej części pola Adres IP. Na koniec połączenia funkcji Val do konwertowania znaki zwrócone przez funkcję Mid na liczbę. Ten ostatni krok jest konieczne, ponieważ odpowiedniego typu danych jest tekstem.

  9. W wierszu Sortuj wszystkich kolumn obliczeniowych ustaw opcję Rosnąco.

    Ważne    Wiersz Sortuj kolumny AdresIP musi pozostać pusty.

    Jeśli chcesz sortować według wartości pól innych niż adresy IP, umieść te pola na prawo lub na lewo od wszystkich czterech kolumn obliczeniowych. Nie umieszczaj dodatkowych pól sortowania pomiędzy kolumnami obliczeniowymi.

  10. Następnym krokiem jest ukrycie czterech kolumn obliczeniowych. Zanim to zrobisz, przełącz się do widoku arkusza danych, aby zobaczyć wynik wyrażeń z kolumn obliczeniowych. Poniższa tabela pokazuje kolumny, jakie będą widoczne po wybraniu widoku arkusza danych.

IDKomputera

AdresIP

CzęśćI

CzęśćII

CzęśćIII

CzęśćIV

3

1.198.3.93

2,54

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,54

2

104.244.253.29

104

244

253

29

2,54

123.4.245.23

123

4

245

23

  1. Przełącz się ponownie do widoku Projekt i wyczyść pole wyboru w wierszu Pokaż dla wszystkich czterech kolumn obliczeniowych. Zapobiegnie to wyświetleniu kolumn obliczeniowych w widoku Arkusz danych.

  2. Opcjonalnie określ kryteria wyłączenia rekordów z kwerendy.

  3. Przełącz się na widok Arkusz danych, aby wyświetlić posortowane rekordy. Zobaczysz rekordy posortowane prawidłowo w kolejności rosnącej adresów IP.

Początek strony

Zastosowanie posortowanych adresów IP

Sprawdzanie adresów IP podczas wprowadzania danych

Jeśli chcesz sprawdzić poprawność adresów bez pisania kodu, możesz to zrobić w ograniczonym zakresie przez ustawienie właściwości InputMask pola #. ###. ###. ###; 0; " " i właściwość Format pola Adres IP & & & & & & & & & & & &.

Do czego służy maska wprowadzania? Kiedy zaczynasz pisać w polu adresu, maska wprowadzania zapobiega wprowadzaniu znaków innych niż liczby i znaki spacji pomiędzy trzema kropkami. Jeśli część liczbowa jest liczbą dwucyfrową, zostaw trzecią cyfrę pustą lub zamiast niej wpisz znak spacji. Zwróć uwagę, że maska wprowadzania nie stanowi ostrzeżenia dla użytkownika w przypadku, gdy próbuje on pominąć jedną lub więcej części adresu albo zamiast wartości liczbowych wpisuje tylko znaki spacji. Na przykład adres „345. .3. ” zostanie uznany za adres prawidłowy.

Do czego służy format wyświetlania? Gdy użytkownik skończy pisać i opuści pole, format wyświetlania usuwa znaki spacji z adresu i wyświetla tylko liczby i kropki. Jeśli więc użytkownik wpisze „354.35 .2 .12 ”, adres zostanie wyświetlony jako „354.35.2.12”. Należy zwrócić uwagę, że kliknięcie w środku adresu lub naciśnięcie klawisza F2 (aby przejść do trybu edycji), kiedy adres jest zaznaczony, powoduje wyświetlenie znaków spacji.

Porada : Jeśli chcesz skopiować adres, przejdź do poprzedniej kolumny lub formantu, naciśnij klawisz TAB, aby zaznaczyć sformatowany adres, a następnie kliknij przycisk Kopiuj. W ten sposób nie zostanie skopiowany ciąg adresu zawierający znaki spacji.

Sortowanie rekordów w formularzu lub raporcie według adresów IP

Aby utworzyć formularz lub raport, w którym rekordy będą sortowane według adresów IP, nowy obiekt należy oprzeć na opisanej wyżej kwerendzie sortującej adresy IP, a nie na tabeli, która przechowuje adresy IP.

Początek strony

Uwaga : Zrzeczenie dotyczące tłumaczenia maszynowego: Ten artykuł został przetłumaczony przez system komputerowy bez interwencji człowieka. Firma Microsoft udostępnia te tłumaczenia maszynowe, aby ułatwić użytkownikom, którzy nie znają języka angielskiego, korzystanie z zawartości dotyczącej produktów, usług i technologii firmy Microsoft. Ponieważ ten artykuł został przetłumaczony maszynowo, może zawierać błędy w słownictwie, składniowe lub gramatyczne.

Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów pakietu Office

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×