Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

对记录进行排序(区分大小写 (ASCII)

时 间:2021-09-03 19:53:41
作 者:杨雪   ID:42182  城市:南京
摘 要:Access 按升序或降序对记录进行排序,而不考虑大小写。 但是,您可以在查询中使用用户定义的函数按文本数据的 ASCII 字符值对其进行排序。 这样会导致排序时区分大小写。
正 文:

下表演示 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 按区分大小写的顺序显示记录。


Access软件网QQ交流群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助