Applies ToMicrosoft 365 Access Access 2024 Access 2021 Access 2019 Access 2016

Access 會以遞增或遞減順序排序記錄,而不考慮大小寫。 不過,您可以撰寫幾行 Visual Basic for Applications (VBA) 程式碼,根據其 ASCII 字元值來排序文字。 根據 ASCII 值排序會區分大寫字母與小寫字母,並產生區分大小寫的排序。

下表示範 Access 中的遞增排序次序與區分大小寫排序次序的差異:

預排序次序

遞增排序

區分大小寫的排序

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

  2. 在 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 可以從查詢中呼叫。 當您將排序欄位的名稱傳遞給此函數時,它會以區分大小寫的順序對欄位值進行排序。

  3. 現在,建立查詢,您將從此查詢呼叫此函數。

    在 [建立] 索引標籤的 [查詢] 群組中,按一下 [查詢設計]。

  4. 選取 [在 Access (中 新增數據表 ] [顯示資料表 ]) 。

  5. 將您想要的欄位拖曳到方格。

  6. 第一個空白欄中的 [欄位] 資料列中,輸入 Expr1: StrToHex([SortField])

    StrToHex 是先前建立的使用者定義函數。 SortField 是包含區分大小寫值的欄位名稱。

  7. 在 [排序] 儲存格中,按一下 [遞增] 或 [遞減]。

    如果您選擇遞增排序,以大寫字母開頭的值會出現在以小寫字母開頭的值之前。 使用遞減順序排序會執行相反的排序。

  8. 切換到資料工作表檢視。

    Access 會以區分大小寫的順序顯示記錄。

頁面頂端

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。