Przejdź do głównej zawartości
Pomoc techniczna
Zaloguj się przy użyciu konta Microsoft
Zaloguj się lub utwórz konto.
Witaj,
Wybierz inne konto.
Masz wiele kont
Wybierz konto, za pomocą którego chcesz się zalogować.

Access sortuje rekordy w kolejności rosnącej lub malejącej bez uwzględnienia wielkości liter. Jednak pisząc kilka wierszy kodu w języku Visual Basic for Applications (VBA), możesz sortować tekst według wartości jego znaków ASCII. Sortowanie na podstawie wartości ASCII odróżnia wielkie litery od małych i w rezultacie kolejność uwzględnia wielkość liter.

W poniższej tabeli pokazano, czym różni się kolejność rosnąca w programie Access od kolejności sortowania uwzględniającej wielkość liter:

Kolejność przed sortowaniem

Kolejność rosnąca

Kolejność uwzględniająca wielkość liter

c

a

A

D

A

B

a

B

C

d

b

D

B

c

a

C

C

b

A

D

c

b

d

d

Mimo że wyniki w kolumnie Kolejność rosnąca mogą na początku wydawać się nieco nieprzewidywalne, w rzeczywistości takie nie są. W kolumnie Kolejność rosnąca „a” pojawia się przed „A”, a „b” pojawia się przed „B”. Dzieje się tak, ponieważ gdy traktujemy je jako wartości tekstowe, „a” = „A” i „B” = „b” niezależnie czy jest to mała czy wielka litera. Program Access uwzględnia oryginalną kolejność wartości. W kolumnie Kolejność przed sortowaniem „a” poprzedza „A”, a „B” poprzedza „b”.

Gdy wykonywana jest operacja sortowania uwzględniająca wielkość liter, wartości tekstowe są zastępowane ich wartościami ASCII. Na przykład A = 65, a = 97, B = 66, b = 98 i tak dalej.

Pisanie kodu VBA

  1. Utwórz moduł VBA i wpisz następujący wiersz w sekcji Deklaracje, jeśli jeszcze go nie ma:

    Option Explicit

  2. Wpisz następującą procedurę w module w Edytorze 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

    Poprzednią zdefiniowaną przez użytkownika funkcję, StrToHex, można wywołać z zapytania. Przekazanie nazwy pola sortowania do tej funkcji spowoduje posortowanie wartości pól w kolejności uwzględniającej wielkość liter.

  3. Teraz utwórz zapytanie, z którego będzie można wywołać tę funkcję.

    Na karcie Tworzenie w grupie Kwerendy kliknij pozycję Projekt kwerendy.

  4. Wybierz opcję Dodaj tabele (Pokaż tabelę w Access 2013).

  5. Przeciągnij pola, które chcesz dodać do siatki.

  6. W pierwszej pustej kolumnie w wierszu Pole wpisz Wyr1: StrToHex([SortField]).

    StrToHex to utworzona wcześniej funkcja zdefiniowana przez użytkownika. SortField to nazwa pola zawierającego wartości uwzględniające wielkość liter.

  7. W komórce Sortuj kliknij pozycję Rosnąco lub Malejąco.

    Jeśli wybierzesz kolejność rosnącą, wartości rozpoczynające się od wielkich liter pojawią się przed tymi, które rozpoczynają się małymi literami. Zastosowanie malejącej kolejności sortowania zadziała odwrotnie.

  8. Przełącz do widoku arkusza danych.

    Program Access wyświetli rekordy posortowane w kolejności uwzględniającej wielkość liter.

Początek strony

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?
Jeśli naciśniesz pozycję „Wyślij”, Twoja opinia zostanie użyta do ulepszania produktów i usług firmy Microsoft. Twój administrator IT będzie mógł gromadzić te dane. Oświadczenie o ochronie prywatności.

Dziękujemy za opinię!

×