Applies ToAccess pro Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Access Řazení záznamů vzestupně nebo sestupně bez ohledu na případy. Pokud ale napíšete několik řádků kódu jazyka Visual Basic for Applications (VBA), můžete text seřadit dle hodnot znaků ASCII. Řazení podle hodnot ASCII rozlišuje velká a malá písmena a výsledkem řazení na základě rozlišování malých a velkých písmen.

Následující tabulka ukazuje, jak se vzestupné pořadí řazení v Accessu liší od pořadí řazení dle rozlišování malých a velkých písmen:

Pořadí před řazením

Vzestupné pořadí

Řazení s rozlišením velkých a malých písmen

c

a

A

D

A

B

a

B

C

d

b

D

B

c

a

C

C

b

A

D

c

b

d

d

I když se výsledky ve sloupci vzestupného pořadí můžou zepředu zdát poněkud nepředvídatelné, nejsou. Ve sloupci vzestupného pořadí se „a“ zobrazí před „A“ a „B“ před „b“. Dochází k tomu proto, že při vyhodnocení jako textových hodnot „A“ = „a“ a „B“ = „b“, ať už jde o malá nebo velká písmena. Access bere v úvahu původní pořadí hodnot. Ve sloupci Pořadí před řazením „a“ předchází „A“ a „B“ předchází „b“.

Při operaci řazení s rozlišováním malých a velkých písmen se textové hodnoty nahradí hodnotami ASCII. Příklad: A = 65, a = 97, B = 66, b = 98 atd.

Psaní kódu jazyka VBA

  1. Vytvořte modul VBA a v části Deklarace zadejte následující řádek (pokud tam ještě není):

    Option Explicit

  2. Do modulu ve Visual Basic Editor zadejte následující postup:

    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
    

    Předchozí uživatelem definovaná funkce StrToHex můžete volat z dotazu. Když předáte název pole řazení této funkci, seřadí hodnoty polí rozlišováním malých a malých písmen.

  3. Teď vytvořte dotaz, ze kterého budete tuto funkci volat.

    Na kartě Vytvoření klikněte ve skupině Dotazů na tlačítko Návrh dotazu.

  4. Vyberte Přidat tabulky (Zobrazit tabulku v Accessu).

  5. Přetáhněte pole, která chcete přidat, do mřížky.

  6. V prvním prázdném sloupci zadejte do řádku FieldExpr1: StrToHex([SortField]).

    StrToHex je uživatelem definovaná funkce, kterou jste vytvořili dříve. SortField je název pole, které obsahuje hodnoty rozlišující malých a velkých písmen.

  7. V buňce Seřadit klikněte na Vzestupně nebo Sestupně.

    Pokud zvolíte vzestupné pořadí, zobrazí se hodnota začínající velkým písmenem před hodnotou začínající malých písmenem. Použití sestupného řazení dělá opak.

  8. Přepnout na zobrazení Datový list.

    Access zobrazí záznamy seřazené rozlišením pořadí dle malých a velkých písmen.

Začátek stránky

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.

Komunity vám pomohou klást otázky a odpovídat na ně, poskytovat zpětnou vazbu a vyslechnout odborníky s bohatými znalostmi.