Sign in with Microsoft
Sign in or create an account.
Hello,
Select a different account.
You have multiple accounts
Choose the account you want to sign in with.

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 2013 中 [顯示表格])。

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

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

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

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

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

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

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

頁面頂端

Need more help?

Want more options?

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

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

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?
By pressing submit, your feedback will be used to improve Microsoft products and services. Your IT admin will be able to collect this data. Privacy Statement.

Thank you for your feedback!

×