按区分大小写次序对记录排序

注意: 我们希望能够尽快以你的语言为你提供最新的帮助内容。 本页面是自动翻译的,可能包含语法错误或不准确之处。 我们的目的是使此内容能对你有所帮助。 可以在本页面底部告诉我们此信息是否对你有帮助吗? 请在此处查看本文的英文版本以便参考。

Microsoft Office Access 2007将按升序或降序排序不区分大小写记录进行排序。 但是,通过编写几行的 Visual Basic for Applications (VBA) 代码,您可以按其 ASCII 字符值排序文本。 基于 ASCII 值排序区分大写字母从小写字母和区分大小写次序中的结果。

下表说明了如何在 Access 中的升序排序顺序不同于区分大小写的排序顺序:

预先排序顺序

升序排序

区分大小写合计 r

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"时,=""和"B"= b,是否小写字母或大写字母。 Access 将考虑原始订单的值。 在预排序顺序列中,""之前"A"和"B"之前"b"。

执行区分大小写的排序操作时,文本值替换 ASCII 值。 例如,A = 65,= 97,B = 66,b = 98,等等。

编写 VBA 代码

  1. 创建一个 VBA 模块,如果它已不存在,在声明部分中,键入以下行:

显式选项

  1. 在 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,可以从查询调用。 当传递给此函数的排序字段的名称时,它将对区分大小写次序中的字段值进行排序。

  2. 现在,创建的查询将从其调用此函数。

    在“创建”选项卡上的“其他”组中,单击“查询设计”。

  3. 显示表对话框中,单击要排序的表,然后单击添加

  4. 将所需的字段拖动到网格中。

  5. 字段行中的第一个空白列中,键入表达式 1: StrToHex([排序字段])

    StrToHex 是您之前创建的用户定义的函数。 排序字段是字段的包含区分大小写的值的名称。

  6. 排序单元格,单击升序降序

    如果选择升序排序,以大写字母开头的值将出现在那些以小写字母开头。 应用降序顺序排序会相反。

  7. 切换到数据表视图。

    Access 会显示的记录,区分大小写的顺序排序。

返回页首

扩展你的 Office 技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×