Порядок сортування записів з урахуванням регістру

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

Microsoft Office Access 2007 сортує записи за зростанням або за спаданням, незважаючи на регістр. Однак, увівши кілька рядків коду Visual Basic для застосунків (VBA), можна сортувати текст за значеннями символів ASCII. Сортування на основі значень ASCII розрізняє великі та малі букви та повертає порядок з урахуванням регістру.

Наведена нижче таблиця демонструє різницю між порядком сортування за зростанням та з урахуванням регістру в Access:

Перед сортуванням

За зростанням

Урахування регістру ортувати r

c

a

A

D

A

B

a

B

C

d

b

D

B

c

a

C

C

b

A

D

c

b

d

d

Хоча результати у стовпці «За зростанням» можуть здаватися, на перший погляд, дещо неочікуваними, це не так. У стовпці «За зростанням» «a» відображається перед «A», а «B» відображається «b». Це відбувається через те, що коли вони оцінюються як текстові значення, «A» = «a» та «B» = «b» незалежно від регістру. Access бере до уваги вихідний порядок значень. У стовпці «Перед сортуванням» , «a» передує «A», а «B» передує «b».

Під час виконання сортування з урахуванням регістру текстові значення буде замінено на значення ASCII. Наприклад, A = 65, a = 97, B = 66, b = 98 тощо.

Створення VBA-коду

  1. Створіть VBA-модуль і введіть наведений нижче рядок у розділі «Декларації», якщо його ще не введено:

Option Explicit

  1. Введіть наведену нижче процедуру в модуль у редакторі Visual Basic:

    Function StrToHex (S As Variant) As Variant
    '
    ' Converts a string to a series of hexadecimal digits.
    ' For example, StrToHex(Chr(9) & "A~") returns 09417E.
    '
    Dim Temp As String, I As Integer
    If VarType(S) <> 8 Then
    StrToHex = S
    Else
    Temp = ""
    For I = 1 To Len(S)
    Temp = Temp & Format(Hex(Asc(Mid(S, I, 1))), "00")
    Next I
    StrToHex = Temp
    End If
    End Function

    Попередня визначена користувачем функція «StrToHex» може бути викликана із запиту. Під час передавання назви поля сортування до цієї функції вона сортуватиме значення поля з урахуванням регістру.

  2. Створіть запит, із якого буде викликано цю функцію.

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

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

  4. Перетягніть потрібні поля до сітки.

  5. У першому пустому стовпці в рядку поле введіть Вираз1: StrToHex([SortField]).

    «StrToHex» є настроюваною функцією, яку було створено раніше. «Сортувати поле» є назвою поля, яке містить значення з урахуванням регістру.

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

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

  7. Перейдіть до подання «Таблиця».

    Access відображає записи, відсортовані в порядку з урахуванням регістру.

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

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

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

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

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

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

×