Office中国论坛/Access中国论坛

标题: 【Access小品】就地正法---组合框自筛选示例 [打印本页]

作者: todaynew    时间: 2010-10-22 12:41
标题: 【Access小品】就地正法---组合框自筛选示例
本帖最后由 todaynew 于 2010-10-22 14:22 编辑

  我们习惯上常用几个组合框构成联级筛选,联级筛选的基本原理就是用其他组合框的控件值,来改变需要筛选的组合框行来源的SQL语句。从这个原理出发,只要我们能获得本组合框输入的数据,那么就可以利用这些数据对组合框进行自筛选。
  要达成这样一个自筛选的效果,需要用到的是组合框的【不在列表中】事件,在这个事件中有两个参数其一名曰NewData,其二名曰 Response 。其中NewData就是输入时不在列表中的那个值,我们便可以用这个值来构造Where子句。这样我们就可以不拖出去枪毙,就地正法即可了。

[attach]43887[/attach]

[attach]43888[/attach]


Private Sub Form_Load()
Dim ssql As String
ssql = "SELECT cpk.产品编号, '名称:' & [产品名称及规格] & ' 颜色:' & [颜色] & ' 单位:' & [单位] AS 品名 FROM cpk"
Me.产品编号.RowSource = ssql
End Sub

Private Sub 产品编号_AfterUpdate()
Dim ssql As String
ssql = "SELECT cpk.产品编号, '名称:' & [产品名称及规格] & ' 颜色:' & [颜色] & ' 单位:' & [单位] AS 品名 FROM cpk"
Me.产品编号.RowSource = ssql
Me.进货数量.SetFocus
End Sub

Private Sub 产品编号_NotInList(NewData As String, Response As Integer)
Dim ssql As String
Dim WH As String
Response = acDataErrContinue
ssql = "SELECT cpk.产品编号, '名称:' & [产品名称及规格] & ' 颜色:' & [颜色] & ' 单位:' & [单位] AS 品名 FROM cpk"
WH = " Where instr([产品名称及规格] & [颜色] & [单位],'" & NewData & "')>0"
Me.产品编号.RowSource = ssql & WH
If Me.产品编号.ListCount = 1 Then
    Me.产品编号.Value = Me.产品编号.Column(0, 0)
    ssql = "SELECT cpk.产品编号, '名称:' & [产品名称及规格] & ' 颜色:' & [颜色] & ' 单位:' & [单位] AS 品名 FROM cpk"
    Me.产品编号.RowSource = ssql
    Me.进货数量.SetFocus
Else
    Me.产品编号.Dropdown
End If
End Sub


作者: ycxchen    时间: 2010-10-22 15:18
对字段值不多的情况是个好办法!
作者: li08hua    时间: 2010-10-22 22:31
很好的思路,原来我也是一直为筛选条件烦恼。谢谢todaynew 提供分享!
作者: girder    时间: 2010-10-26 16:20
非常好的思路,高手呀!!!!!!!!!!!1
作者: myrison    时间: 2010-10-26 19:22
谢谢分享!
作者: huxinhua    时间: 2012-1-10 15:12
谢谢分享!
作者: bbsliu    时间: 2012-1-15 09:55
多谢,学习了。
作者: bbpst    时间: 2012-1-15 10:02
精华要汲取{:soso_e181:}
作者: nncchh    时间: 2015-5-25 20:24
很好的思路
作者: lintina892    时间: 2015-7-14 16:22
学习学习学习学习
作者: lintina892    时间: 2015-7-14 16:22
学习学习学习学习
作者: lintina892    时间: 2015-7-14 16:22
很好的思路,原来我也是一直为筛选条件烦恼
作者: zjhzxs    时间: 2015-7-20 12:51
谢谢分享!!!
作者: zjhzxs    时间: 2015-7-20 12:52
谢谢分享!!!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3