Sortowanie rekordów w kolejności uwzględniającej wielkość liter

Ważne : Ten artykuł został przetłumaczony maszynowo, zobacz zastrzeżenie. Angielskojęzyczną wersję tego artykułu można znaleźć tutaj .

Program Microsoft Office Access 2007 sortuje rekordy w kolejności rosnącej lub malejącej, bez uwzględniania wielkości liter. Po napisaniu kilku wierszy kodu w języku Visual Basic for Applications (VBA) można jednak sortować tekst na podstawie wartości kodów ASCII dla poszczególnych znaków. Sortowanie według wartości kodów ASCII pozwala odróżnić małe i wielkie litery, dzięki czemu wielkość liter jest uwzględniana podczas sortowania.

W tabeli poniżej pokazano różnice między sortowaniem w kolejności rosnącej a sortowaniem z uwzględnieniem wielkości liter w programie Access:

Kolejność przed sortowaniem

Sortowanie w kolejności rosnącej

Zamówień uwzględniania wielkości liter 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

Wyniki sortowania w kolejności rosnącej mogą na pierwszy rzut oka wydawać się nieprzewidywalne, lecz w rzeczywistości tak nie jest. W kolumnie „Sortowanie w kolejności rosnącej” litera „a” występuje przed „A”, natomiast litera „B” występuje przed „b”. Dzieje się tak dlatego, że przy porównywaniu wartości tekstowych litery „A” oraz „a”, a także litery „B” oraz „b”, są traktowane jednakowo, bez względu na wielkość liter. Program Access bierze pod uwagę oryginalną kolejność wartości. W kolumnie Kolejność przed sortowaniem litera „a” poprzedza „A”, natomiast litera „B” poprzedza „b”.

Jeśli jest wykonywane sortowanie z uwzględnieniem wielkości liter, wartości tekstowe są zastępowane wartościami kodu ASCII, które odpowiadają poszczególnym znakom, na przykład A = 65, a = 97, B = 66, b = 98 itd.

Pisanie kodu VBA

  1. Utwórz moduł VBA i w sekcji deklaracji wpisz następujący wiersz (jeśli jeszcze nie jest wpisany):

Option Explicit

  1. W Edytorze Visual Basic wpisz następującą procedurę w module:

    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

    Podana wyżej funkcja zdefiniowana przez użytkownika, która nosi nazwę StrToHex, może zostać wywołana z poziomu kwerendy. Jeśli do funkcji StrToHex zostanie przekazana nazwa pola sortowania, funkcja posortuje wartości z uwzględnieniem wielkości liter.

  2. Utwórz kwerendę, która wywoła funkcję StrToHex.

    Na karcie Tworzenie w grupie Inne kliknij przycisk Projekt kwerendy.

  3. W oknie dialogowym Pokazywanie tabeli kliknij nazwę tabeli, którą chcesz posortować, a następnie kliknij przycisk Dodaj.

  4. Przeciągnij na siatkę wybrane pola.

  5. W pierwszej pustej kolumnie w wierszu pole wpisz Wyr1: StrToHex([pole_sortowania]).

    StrToHex jest funkcją zdefiniowaną wcześniej przez użytkownika. Pole_sortowania jest nazwą pola zawierającego wartości, w których należy rozróżnić wielkość liter.

  6. W komórce Sortuj kliknij opcję Rosnąco lub Malejąco.

    Jeśli zostanie wybrana kolejność rosnąca, wartości zaczynające się wielką literą zostaną wyświetlone przed wartościami zaczynającymi się małą literą. W przypadku sortowania w kolejności malejącej będzie odwrotnie.

  7. Przełącz do widoku arkusza danych.

    Program Access wyświetli rekordy posortowane z uwzględnieniem wielkości liter.

Początek strony

Uwaga : Zrzeczenie dotyczące tłumaczenia maszynowego: Ten artykuł został przetłumaczony przez system komputerowy bez interwencji człowieka. Firma Microsoft udostępnia te tłumaczenia maszynowe, aby ułatwić użytkownikom, którzy nie znają języka angielskiego, korzystanie z zawartości dotyczącej produktów, usług i technologii firmy Microsoft. Ponieważ ten artykuł został przetłumaczony maszynowo, może zawierać błędy w słownictwie, składniowe lub gramatyczne.

Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów pakietu Office

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×