【access小品】切掉尾巴--刘晓军筛选代码优化-煮江品茶
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-模块/函数/VBA


【access小品】切掉尾巴--刘晓军筛选代码优化

发表时间:2010/7/20 9:43:28 评论(7) 浏览(7605)  评论 | 加入收藏 | 复制
   
摘 要:筛选优化
正 文:

  上周末与版友瑞哥同志讨论一个子窗体数据源问题,看到一段涉及SQL准则部分的写法,对其中代码甚为不解。瑞哥同志告知是从刘晓军同志案例中套用过来的,于是告诉瑞哥了一个简洁写法。今日看到版友 kent_ 73同志又出现同样问题,这是版友  kent_ 73同志的一段筛选代码:
Dim str As String
str = ""
If Not IsNull(Me.Combo2) Then
        str = str & "([项目] like '" & Me.Combo2 & "') AND "
End If
If Len(str) > 0 Then
        str = Left(str, Len(str) - 5)
End If
Me.表1子窗体.Form.Filter = str
Me.表1子窗体.Form.FilterOn = True

  看来刘晓军同志筛选的案例影响很大。不过这段代码简洁的写法应该如下:
Dim str As String
str = ""
If Not IsNull(Me.Combo2) Then
        str = str & "([项目] like '" & Me.Combo2 & "') AND "
End If
str=str & "true"
Me.表1子窗体.Form.Filter = str
Me.表1子窗体.Form.FilterOn = True

  也就是说将去除字符串尾端的" AND ",改变为在尾端加一个"True"字符串。其原理是:True and True=True;False and True=False;因此尾端加一个True不影响逻辑值的结果。由此推理,这样的筛选代码,最为简洁的写法为:

Dim str As String
str = "True"
If Not IsNull(Me.Combo2) Then
        str = str & " AND ([项目] like '" & Me.Combo2 & "')"
End If
Me.表1子窗体.Form.Filter = str
Me.表1子窗体.Form.FilterOn = True

  也就是说将“True”作为str的初始值,屁股和脑袋对掉,从整体上看就是切掉尾巴。

   


Access软件网交流QQ群(群号:198465573)
 
 相关文章
【Access示例】拼音首字母筛选示例  【漏蛧尐魚℡  2013/1/27】
【Access源码示例】数字区间段查询示例,开始数字至截止数字区段...  【麥田  2013/3/12】
【Access源码示例】日期区间段查询示例,日期时间段查询示例,开...  【麥田  2013/3/13】
筛选男女同宿的入住记录  【蒋元根  2013/5/17】
Access快速开发平台--筛选名称与Where条件应用示例  【红尘如烟  2013/6/17】
常见问答
技术分类
相关资源
文章搜索
关于作者

煮江品茶

文章分类

文章存档

友情链接