Перейти до основного
Підтримка
Вхід
Вхід за допомогою облікового запису Microsoft
Увійдіть або створіть обліковий запис.
Вітаємо,
Виберіть інший обліковий запис.
У вас є кілька облікових записів
Виберіть обліковий запис, за допомогою якого потрібно ввійти.

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

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

Порядок попереднього сортування

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

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

C

a

A

D

A

Б

a

B

C

д

b

D

Б

C

a

C

C

b

A

D

C

b

д

д

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

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

Напишіть код VBA

  1. Створіть модуль VBA і введіть наведений нижче рядок у розділі Оголошення, якщо його ще немає:

    Option Explicit

  2. У модулі редактора 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 можна викликати із запиту. Коли ви передаєте ім'я поля сортування цій функції, вона сортуватиме значення полів у порядку з урахуванням регістра.

  3. Тепер створіть запит, з якого буде викликатися ця функція.

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

  4. Виберіть Додати таблиці (відображати таблицю в Access 2013 ).

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

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

    StrToHex – це користувацька функція, яку ви створили раніше. SortField – це ім'я поля, яке містить значення з урахуванням регістра.

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

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

  8. Перехід до вікна табличного подання даних.

    У програмі Access відобразяться записи, відсортовані за регістром.

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

Потрібна додаткова довідка?

Потрібні додаткові параметри?

Ознайомтеся з перевагами передплати, перегляньте навчальні курси, дізнайтесь, як захистити свій пристрій тощо.

Спільноти допомагають ставити запитання й відповідати на них, надавати відгуки та дізнаватися думки висококваліфікованих експертів.

Чи ця інформація була корисною?

Наскільки ви задоволені якістю мови?
Що вплинуло на ваші враження?
Натиснувши кнопку "Надіслати", ви надасте свій відгук для покращення продуктів і служб Microsoft. Ваш ІТ-адміністратор зможе збирати ці дані. Декларація про конфіденційність.

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

×