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

Важно : Тази статия е преведена машинно – вижте отказа от отговорност. Английската версия на тази статия за справка можете да намерите тук .

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 показва записите, сортирани по ред с различаване на малките и главните букви.

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

Забележка : Отказ от отговорност за машинен превод: Тази статия е преведена от компютърна система без човешка намеса. Microsoft предлага тези машинни преводи, за да помогне на потребителите, които не говорят английски, да се възползват от съдържанието за продукти, услуги и технологии на Microsoft. Тъй като статията е преведена машинно, е възможно да съдържа грешки в речника, синтаксиса и граматиката.

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

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

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

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

×