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

Забележка:  Бихме искали да ви осигурим най-новото помощно съдържание възможно най-бързо на вашия собствен език. Тази страница е преведена чрез автоматизация и може да съдържа граматически грешки и несъответствия. Нашата цел е това съдържание да ви бъде полезно. Можете ли да ни кажете дали информацията е била полезна за вас, в дъното на тази страница? Ето статията на английски за бърза справка.

Microsoft Office Access 2007 сортира записи във възходящ или низходящ ред с различаване на малките и главните букви. Като напишете обаче няколко реда в код на Visual Basic for Applications (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. В първата празна колона, в реда поле въведете Expr1: StrToHex()[SortField]).

    StrToHex е функция, дефинирана от потребителя, която сте създали по-рано. SortField е името на полето, което съдържа стойностите с различаване на малките и главните букви.

  6. В клетката Сортирай, щракнете върху Възходящо или Низходящо.

    Ако изберете възходящ ред, стойност, започваща с главни букви, ще се появи преди стойностите, започващи с малки букви. Прилагането на низходящ ред прави обратното.

  7. Превключете в табличен изглед.

    Access показва записите, сортирани по ред с различаване на малките и главните букви.

Най-горе на страницата

Разширете уменията си в Office
Преглед на обучението
Получавайте първи новите функции
Присъединете се към участниците в Office Insider

Беше ли полезна тази информация?

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

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×