【access小品】切掉尾巴--刘晓军筛选代码优化
时 间:2010-07-20 09:43:28
作 者:todaynew ID:10802 城市:武汉
摘 要:筛选优化
正 文:
上周末与版友瑞哥同志讨论一个子窗体数据源问题,看到一段涉及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群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- 【Access高效办公】统计当...(06.30)
- 【Access高效办公】用复选...(06.24)
- 根据变化的日期来自动编号的示例...(06.20)
- 【Access高效办公】按日期...(06.12)
- 合并列数据到一个文本框的示例;...(05.06)
- 通过命令按钮让Access列表...(04.24)
- 【Access高效办公】统计当...(03.11)
- 【Access Inputbo...(03.03)
- 按回车键后光标移动到下一条记录...(02.12)

学习心得
最新文章
- 关于Access交叉表查询生成的统...(08.02)
- ACCESS做的工作日常小工具_纸...(07.30)
- Access快速开发平台进销存教程...(07.28)
- 关于Access快速开发平台2.6...(07.23)
- 【Access交叉表查询】按百分比...(07.21)
- VBA编程-ADO-关于对象早晚期...(07.17)
- Access快速开发平台--frm...(07.15)
- 1行代码实现Access与SQL ...(07.09)
- 免费《仓库管理实战课程》全集(07.08)
- Access快速开发平台--Win...(07.07)