access 2007按区分大小写次序对记录排序
时 间:2008-07-24 08:10:31
作 者:Microsoft ID:11 城市:上海 QQ:3002789054
摘 要:按区分大小写次序对记录排序
正 文:
Microsoft Office Access 2007 以升序或降序对记录排序时不考虑大小写。但是,通过编写几行 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 代码
- 创建 VBA 模块,并在“声明”节中键入以下行(如果那里还没有它):
Option Explicit
- 在 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。将排序字段的名称传递给此函数时,它将按区分大小写的次序对字段值排序。
- 现在,创建用来调用此函数的查询。
在“创建”选项卡上的“其他”组中,单击“查询设计”。
- 在“显示表”对话框中,单击希望排序的表,然后单击“添加”。
- 将所需字段拖到网格中。
- 在第一个空白列的“字段”行中,键入 Expr1: StrToHex([SortField])。
StrToHex 是在前面创建的用户定义函数。SortField 是包含区分大小写值的字段的名称。
- 在“排序”单元格中,单击“升序”或“降序”。
如果选择升序次序,则以大写字母开头的值将出现在那些以小写字母开头的值之前。应用降序次序则以相反方式排序。
- 切换至数据表视图。
Access 将显示记录,这些记录以区分大小写的次序进行排序。
Access软件网官方交流QQ群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access判断多条明细的配方或订...(11.30)
- 如何让后台数据库在局域网共享时,且...(11.29)
- 【Access月初月末日期设置方法...(11.29)
- 【Access IIF函数嵌套示例...(11.26)
- Access快速开发平台--使用组...(11.25)
- Access快速开发平台--对上传...(11.22)
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)