论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Access数据库教程
Tag:2000,2003,2007,查询,sql,,教程,安全,转换,排序,复制,删除,修改,视频教程

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

文章类别:Access数据库 | 发表日期:2008-10-5 18:44:27

时 间:2008-7-24 8:10:31
作 者:Microsoft
摘 要:按区分大小写次序对记录排序
正 文:

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 代码

  1. 创建 VBA 模块,并在“声明”节中键入以下行(如果那里还没有它):

     

    Option Explicit

     

  2. 在 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。将排序字段的名称传递给此函数时,它将按区分大小写的次序对字段值排序。

  3. 现在,创建用来调用此函数的查询。

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

  4. “显示表”对话框中,单击希望排序的表,然后单击“添加”
  5. 将所需字段拖到网格中。
  6. 在第一个空白列的“字段”行中,键入 Expr1: StrToHex([SortField])

    StrToHex 是在前面创建的用户定义函数。SortField 是包含区分大小写值的字段的名称。

  7. “排序”单元格中,单击“升序”“降序”

    如果选择升序次序,则以大写字母开头的值将出现在那些以小写字母开头的值之前。应用降序次序则以相反方式排序。

  8. 切换至数据表视图。

    Access 将显示记录,这些记录以区分大小写的次序进行排序。

视频教程列表
文章教程搜索
 
Access数据库推荐教程
Access数据库热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058