下表演示 Access 中的升序顺序与区分大小写的顺序的区别。
对记录进行排序(区分大小写 (ASCII))
预排序顺序 升序 区分大小写的顺序
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,等等。
以下用户定义的函数可用于以区分大小写的顺序对数据进行排序。
Function StrToHex(S As Variant) As Variant
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 函数
前面的用户定义的函数 StrToHex 可以从查询中调用。 将排序字段的名称传递给此函数时,将以区分大小写的顺序对字段值进行排序。 下面的步骤说明如何使用此函数。
创建要从中调用此函数的查询。
在"显示表"对话框中,选择要排序的表,然后选择"添加 "。
将希望的字段拖动到网格中。
在"字段"行的第一个空白列中,键入 Expr1: StrToHex ([ SortField ])。 StrToHex 是之前创建的用户定义函数。 SortField 是包含区分大小写值的字段的名称。
在"排序" 单元格中,选择"升序"或 "降序"。 如果您选择升序顺序,则以大写字母开头的值将显示在以小写字母开头的值之前。 应用降序排序则相反。
切换到数据表视图。 Access 按区分大小写的顺序显示记录。