Преминаване към основното съдържание
Поддръжка
Влизане с Microsoft
Влезте или създайте акаунт.
Здравейте,
Изберете друг акаунт.
Имате няколко акаунта
Изберете акаунта, с който искате да влезете.

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

Следващата таблица показва как възходящ ред на сортиране в Access се различава от реда на сортиране според разликата между главни и малки букви:

Ред на предварително сортиране

Възходящ ред

Ред с различаване на главните и малките букви

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

  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. Вашият ИТ администратор ще може да събира тези данни. Декларация за поверителност.

Благодарим ви за обратната връзка!

×