Сортування IP-адрес

Увага! : Цю статтю перекладено за допомогою служби машинного перекладу; див. застереження. Версію цієї статті англійською мовою див. тут для отримання довідки.

У цьому розділі описано процедуру сортування IP-адрес, які зберігаються в базі даних Microsoft Office Access 2007.

У цій статті

Загальні відомості

Створення запиту

Інші способи використання відсортована IP-адрес

Вступ

Якщо ви працюєте з IP-адресами, ви, напевно, вже знаєте, що це не так просто, як працювати з текстом або числами. Це спричинено тим, що IP-адреса насправді є набором з чотирьох числових значень, розділених крапкою (.), кожне значення якого є числом від 0 до 255. У таблиці нижче наведено дані перед застосуванням сортування.

Ідентифікатор комп'ютера

Працівник

Розташування

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


Сортування IP-адрес в Access є складним, оскільки Access не пропонує спеціального типу даних для зберігання IP-адрес. Хоча IP-адреси є набором чисел, не можна зберігати IP-адреси у числовому полі. Це спричинено тим, що числове поле підтримує лише одну десяткову кому (.), тоді як IP-адреса містить три крапки (.). Таким чином, адреси потрібно зберігати в текстовому полі.

Оскільки IP-адреси зберігаються в текстовому полі, не можна використовувати вбудовані кнопки сортування в Access для сортування адрес у зрозумілий спосіб. Кнопки сортування завжди сортують значення у текстовому полі в алфавітному порядку, навіть якщо символи є числами. Тобто адреси сортуються за першою цифрою, далі за другою цифрою тощо, а не за числовими значеннями, які становлять адресу. У таблиці нижче наведені адреси з попередньої таблиці, поля IP-адрес яких відсортовані в алфавітному порядку.

Ідентифікатор комп'ютера

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


Адреси, які починаються з 1, відображаються перед адресами, які починаються з 2, тощо. У таблиці нижче адреси наводяться у правильному порядку за зростанням.

Ідентифікатор комп'ютера

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


Для полегшення розуміння дій, пов’язаних із сортуванням цих адрес, розділіть IP-адреси на чотири числові частини. Адреси потрібно сортувати за першою частиною, далі для кожного значення в першій частині, далі за другою частиною тощо. У таблиці кожна частина зображена в окремому стовпці та, оскільки стовпці містять прості числові значення, стає можливим сортувати стовпці зліва направо за зростанням, як це показано в таблиці нижче.

ЧастинаI

ЧастинаII

ЧастинаIII

ЧастинаIV

1

198

3

93

32

183

93

40

104

30

244

2

104

244

4

1

104

244

253

29

123

4

245

23


Сортування IP-адрес насправді є сортуванням чотирьох окремих частин. Наведена нижче процедура створює запит, який крім поля IP-адреси містить чотири обчислювані стовпці, причому кожен стовпець зберігає частину значень адреси. Перший обчислюваний стовпець містить першу числову частину адреси, другий стовпець містить другу числову частину адреси тощо. Замість сортування записів за полем IP-адреси запит сортуватиме записи за чотирма обчислюваними стовпцями.

На початок сторінки

Створення запиту

Наведена нижче процедура створює окремий запит під назвою «Сортовані IP-адреси», який відображатиме записи IP-адрес за зростанням. Припустімо, що поточна база даних містить таблицю під назвою «Докладно про комп’ютер», яка містить текстове поле з назвою «IP-адреса».

  1. На вкладці Створення в групі Додатково натисніть кнопку Конструктор запитів.

  2. У діалоговому вікні Відображення таблиці на вкладці Таблиці виберіть Докладно про комп'ютер, відтак натисніть кнопку Додати. Закрийте діалогове вікно.

  3. Перетягніть поля «Ідентифікатор комп'ютера» та «IP-адреса» до сітки конструктора запиту.

  4. Тепер ви готові додати обчислювані стовпці. У першому пустому стовпці праворуч Введіть вираз партія: Val(Left([IPAddress],(InStr(1,[IPAddress],".") -1))) в рядку поле . Вираз повертає символи, які передують початку першого періоду (.) крапкою в полі.

    Тепер перегляньте вираз. Оскільки ви не знаєте, скільки цифр зробити першу частину адреси, ви використовуєте на функція InStr знайти позицію першого періоду. Віднімання 1 (щоб виключити крапку) Повертає кількість цифр у першу частину. Потім Використайте цей номер з на ліворуч функція видобувати цієї кількості символів, починаючи з крайнього лівого символу, з полем IP-адреси. Нарешті, ви телефонуєте за функцію Val для перетворення символів, що повертається функцією ліворуч на число. Цей останній крок необхідна, оскільки типом даних – це текст.

  5. Збережіть запит, натиснувши кнопку Зберегти на панелі швидкого доступу. Рекомендовано робити це після кожної проміжної дії.

  6. Додати стовпець для другій адресу. У стовпці праворуч від партія, введіть PartII: Val(Mid([IPAddress],InStr(1,[IPAddress],".") +1,InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") -InStr(1,[IPAddress],".") -1)) в рядку поле . Вираз повертає символи, розташовані між перше та друге крапкою в полі.

    Знову ж таки перегляньте вираз. Оскільки ви не знаєте, скільки цифр складають другу частину адресу або точно, де другій запускає (у тому, що ви не, скільки часу – це перша частина), Використовуйте функцію InStr пошук позиції періоди. Потім використовується в функція Mid , щоб видобути символи, які слідують першого періоду але починати другого періоду. Нарешті, ви викликаєте функцію Val для перетворення символів, функція Mid повертає на число. Цей останній крок необхідна, оскільки типом даних – це текст.

  7. Додавання стовпця для третього частини адреси. У стовпці праворуч від PartII, введіть PartIII: 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)) в рядку поле . Вираз повертає символи, розташовані між другого та третього крапкою в полі.

    Ще раз перевірте вираз. Оскільки невідомо, скільки цифр становлять третю частину адреси або де саме починається третя частина (адже невідомо, наскільки довгою є друга та третя частини), використайте функцію InStr, щоб знайти розташування крапок. Потім використайте функцію Mid, щоб витягти символи, які знаходяться після другої крапки, але передують третій крапці. Нарешті, використовуємо функцію Val, щоб перетворити повернуті за допомогою функції Mid символи на число. Ця остання дія є необхідною, оскільки основним типом даних є «Текст».

  8. Додавання стовпця четвертий і останній адресу частини. У стовпці праворуч від PartIII, введіть PartIV: Val(Right([IPAddress],Len([IPAddress])-InStr(InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") +1,[IPAddress],"."))) в рядку поле . Вираз повертає символи, які слідують за останній період.

    Знову ж таки перегляньте вираз. Ключ – це розташування третій період а потім видобути символи, після його. Оскільки ви не знаєте, де третій період саме розташовано, ви викликаєте функція InStr тричі знайти розташування третьої крапки. Потім використовується в функція Len , щоб обчислити кількість десяткових розрядів, зокрема четвертий. Кількість десяткових розрядів, повертається використовується з на справа функції для видобування, Максимальна кількість символів із правого частину полем IP-адреси. Нарешті, ви викликаєте функцію Val для перетворення символів, функція Mid повертає на число. Цей останній крок необхідна, оскільки типом даних – це текст.

  9. Установіть значення рядка Сортування всіх чотирьох обчислюваних стовпців За зростанням.

    Важливо    Рядок Сортування стовпця «IP-адреса» має бути пустим.

    Якщо потрібно сортувати за іншими значеннями полів, окрім адрес, розташуйте поля ліворуч або праворуч від усіх чотирьох обчислених стовпців. Не варто розташовувати інші поля сортування між обчислюваними стовпцями.

  10. Наступним кроком є приховування чотирьох обчислюваних стовпців із таблиці. Спершу перейдіть до подання «Таблиця», щоб переглянути результат виразів у обчислюваних стовпцях. Наведена нижче таблиця відображає, як виглядатимуть стовпці в поданні «Таблиця».

Ідентифікатор комп'ютера

IP-адреса

ЧастинаI

ЧастинаII

ЧастинаIII

ЧастинаIV

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

  1. Поверніться до подання «Конструктор» і зніміть прапорець у рядку Відобразити всіх чотирьох обчислюваних стовпців. Це запобігає відображенню обчислюваних стовпців у поданні «Таблиця».

  2. За бажанням укажіть критерії для вилучення записів із запиту.

  3. Перейдіть до подання «Таблиця», щоб побачити записи після сортування. Записи відображатимуться правильно за зростанням IP-адрес.

На початок сторінки

Інші способи використання сортованих IP-адрес

Перевірка IP-адрес під час введення даних

Якщо ви хочете, щоб перевірити адреси без написання коду, ви можете зробити це для обмежених даних за допомогою властивості Маска вводу поля, до #. ## #. #. #; 0; " " і Формат властивість поля IP-адреси для & & & & & & & & & & & &.

Що робить маска вводу? Під час введення в полі адреси маска вводу запобігає введенню інших символів, за винятком чисел і пробілів, між трьома крапками. Якщо числова частина складається з дворозрядного числа, залишіть третю цифру пустою або введіть пробіл замість неї. Зверніть увагу на те, що маска вводу не попереджає користувача про пропуск однієї або кількох частин адреси або про введення лише пробілів замість числових значень. Наприклад, «345. .3. » буде сприйнято як дійсна адреса.

Що робить формат відображення? По завершенні введення та виходу з поля формат відображення видаляє пробіли в адресі та відображає лише числа та крапки. Тому якщо було введено «354.35 .2 .12 », адреса відображатиметься як «354.35.2.12». Зверніть увагу, якщо ви клацнете всередині адреси або натиснете F2 (щоб увійти до режиму редагування), коли адресу вибрано, знову з'явиться пробіл.

Порада : Якщо потрібно скопіювати адресу, перейдіть до попереднього стовпця або елемента керування, натисніть клавішу TAB, щоб вибрати відформатовану адресу, відтак натисніть кнопку Копіювати. У такий спосіб ви не скопіюєте рядок адреси, який містить пробіли.

Сортування записів у формі або звіті за IP-адресами

Якщо потрібно створити форму або звіт, у яких записи сортуються за IP-адресами, створіть новий об'єкт на основі запиту, який сортує адреси як це описано вище, замість таблиці, у якій зберігаються адреси.

На початок сторінки

Примітка : Застереження про машинний переклад: Цю статтю перекладено комп’ютерною системою без втручання людини. Корпорація Майкрософт пропонує таку послугу, щоб іншомовні користувачі могли дізнаватися про продукти, служби й технології Microsoft. Оскільки статтю перекладено за допомогою служби машинного перекладу, вона може містити смислові, синтаксичні або граматичні помилки.

Отримуйте нові функції раніше за інших
Приєднайтеся до оцінювачів Office

Ця інформація корисна?

Дякуємо за ваш відгук!

Дякуємо за відгук! Схоже, вам може стати в нагоді допомога одного з наших спеціалістів служби підтримки Office, з яким ми вас можемо з’єднати.

×