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

Access sẽ sắp xếp các bản ghi theo thứ tự tăng dần hoặc giảm dần mà không liên quan đến trường hợp. Tuy nhiên, bằng cách viết một vài dòng mã Visual Basic for Applications (VBA), bạn có thể sắp xếp văn bản theo giá trị ký tự ASCII. Việc sắp xếp dựa trên giá trị ASCII phân biệt chữ hoa với chữ thường và theo thứ tự phân biệt chữ hoa.

Bảng sau đây minh họa thứ tự sắp xếp tăng dần trong Access khác với thứ tự sắp xếp phân biệt chữ hoa, chữ thường:

Thứ tự sắp xếp trước

Thứ tự tăng dần

Thứ tự phân biệt chữ hoa chữ thường

c

a

A

D

A

B

a

B

C

d

b

D

B

c

a

C

C

b

A

D

c

b

d

d

Mặc dù các kết quả trong cột Thứ tự tăng dần có thể xuất hiện lúc đầu có vẻ hơi khó dự đoán, nhưng chúng không như vậy. Trong cột Thứ tự tăng dần, "a" xuất hiện trước "A" và " B" xuất hiện trước "b". Điều này xảy ra vì khi được đánh giá là giá trị văn bản, "A" = "a" và "B" = "b," dù là chữ thường hay chữ hoa. Access tính đến thứ tự ban đầu của các giá trị. Trong cột Thứ tự sắp xếp trước, "a" đứng trước "A" và "B" trước "b".

Khi thao tác sắp xếp phân biệt chữ hoa chữ thường được thực hiện, giá trị văn bản sẽ được thay thế bằng giá trị ASCII của chúng. Ví dụ, A = 65, a = 97, B = 66, b = 98, v.v.

Viết mã VBA

  1. Tạo mô-đun VBA và nhập dòng sau đây vào mục Khai báo, nếu chưa có ở đó:

    Option Explicit

  2. Nhập quy trình sau đây vào mô-đun trong Trình soạn thảo 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
    

    Hàm do người dùng xác định trước đó, StrToHex, có thể được gọi từ một truy vấn. Khi bạn chuyển tên trường sắp xếp sang hàm này, nó sẽ sắp xếp các giá trị trường theo thứ tự phân biệt chữ hoa/thường.

  3. Bây giờ, tạo một truy vấn mà từ đó bạn sẽ gọi hàm này.

    Trên tab Tạo, trong nhóm Truy vấn, bấm Thiết kế Truy vấn.

  4. Chọn Thêm Bảng (Hiển thị Bảng trong Access).

  5. Kéo các trường bạn muốn vào lưới.

  6. Trong cột trống đầu tiên, trong hàng Trường , nhập Expr1: StrToHex([SortField]).

    StrToHex là hàm do người dùng xác định mà bạn đã tạo trước đó. SortField là tên của trường có chứa các giá trị phân biệt chữ hoa chữ thường.

  7. Trong ô Sắp xếp , bấm vào Tăng dần hoặc Giảm dần.

    Nếu bạn chọn thứ tự tăng dần, giá trị bắt đầu bằng chữ hoa sẽ xuất hiện trước những giá trị bắt đầu bằng chữ thường. Việc áp dụng sắp xếp thứ tự giảm dần sẽ thực hiện điều ngược lại.

  8. Chuyển sang dạng xem Biểu dữ liệu.

    Access sẽ hiển thị các bản ghi, được sắp xếp theo thứ tự phân biệt chữ hoa,chữ thường.

Đầu Trang

Bạn cần thêm trợ giúp?

Bạn muốn xem các tùy chọn khác?

Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa.

Cộng đồng giúp bạn đặt và trả lời các câu hỏi, cung cấp phản hồi và lắng nghe ý kiến từ các chuyên gia có kiến thức phong phú.