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

组合框模糊筛选

时 间:2007-06-26 00:00:00
作 者:钱玉伟   ID:8  城市:上海  QQ:2851379730点击这里给张志发消息
摘 要:如何使用组合框模糊筛选

正 文:

在组合框使用过程中经常会使用到组合框模糊筛选功能,这个功能主要是通过在组合框CHANGE事件和NOT IN LIST 事件来实现。
在组合框CHANGE事件中我们通过模糊查询在数据表中查到以在组合框的文本框中输入的数据开头并且在组合框列表中已经存在的项,例子如下:

Private Sub陈列商品_Change()

    Dim a As String

    a = "*" & Me.陈列商品.Text & "*"

    Me.陈列商品.RowSource = "SELECT 商品ID, 货品编号 FROM 商品目录 Where 货品编号 like '" & a & "';"

    Me.陈列商品.Dropdown

    b = Me.陈列商品.Column(0, 0)

End Sub

上面这段代码红色部分就是模糊查询,跟一般查询的区别在于最后使用了like。

当用户在一个组合框的文本框输入了一个值,而组合框列表中不存在这个值的时候,就发生了notinlist事件,这个事件当且仅当组合框notinlist属性为ture时才能发生。当notinlist属性为ture时,每当用户试图输入一个在组合框列表中不存在的项目时,notinlist事件中的任何代码都将执行。举例如下:

Private Sub陈列商品_NotInList(NewData As String, Response As Integer)

    Dim ctl As Control

    Set ctl = Me!陈列商品

    Response = acDataErrContinue

    ctl.Undo

    Me.陈列商品 = b

    Me.陈列商品.RowSource = "SELECT 商品ID, 货品编号 FROM 商品目录;"

    SendKeys ("{Tab}")

End Sub

通过notinlist事件在组合框中添加了组合框列表中没有的项。

Notinlist事件的过程接受一个响应参数,这个参数能告诉VBA在代码执行之后做什么,下面三个常数的任何一个都能放在响应参数表中:

acDataErrAdded----这个常数用于通过代码为组合框的记录源添加新值,这段代码会再查询组合框,并向列表中添加新值。
    acDataErrDisplay---这个常数让VBA显示默认错误消息。

acDataErrContinue---这个常数禁用VBA默认错误信息,使用自己的错误消息代替它。Access仍然要求在组合框中输入一个有效的条目。

 



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

常见问答:

技术分类:

相关资源:

专栏作家

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