Foxtable(狐表)用户栏目专家坐堂 → [求助]怎么实现万用型筛选窗口


  共有11661人关注过本帖树形打印复制链接

主题:[求助]怎么实现万用型筛选窗口

帅哥哟,离线,有人找我吗?
zhuzhi
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:476 积分:4039 威望:0 精华:0 注册:2011/11/2 8:55:00
[求助]怎么实现万用型筛选窗口  发帖心情 Post By:2012/11/8 15:43:00 [只看该作者]

我想用下面的代码做个万用型筛选窗口

Dim Filter As String
With e.Form.Controls("ComboBox2")
    If .Value IsNot Nothing Then
        Filter = "职工号= '" & .Value & "'"
    End If
End With
If Filter > "" Then
    Tables("职工总库").Filter = Filter
End If

 

我想用两个组合框来筛选数据,第一个组合框用来选择查询项目,比如上面代码中的职工号,第二个组合框用来选择对应的数值。最后,我可以不用设置很多的查询项,只用修改2个组合框的值,就能在窗口中以不同的条件筛选数据

于是把上面的代码改成

 

Dim Filter As String

With e.Form.Controls("ComboBox1")
With e.Form.Controls("ComboBox2")
    If .Value IsNot Nothing Then
        Filter = "ComboBox1= '" & .Value & "'"
    End If
End With
If Filter > "" Then
    Tables("职工总库").Filter = Filter
End If

 

结果当然是华丽地出错了。首先是语法错误,去掉With e.Form.Controls("ComboBox1")后,又显示找不到列ComboBox1

 

我该怎么做才好呢?

 

求教!非常感谢!


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/11/8 15:49:00 [只看该作者]

用心去体会下面的代码:

 

 

Dim Filter As String
If e.Form.Controls("ComboBox1").Value IsNot Nothing Then
    Filter =  e.Form.Controls("ComboBox1").Value
    If  e.Form.Controls("ComboBox2").Value IsNot Nothing Then
        Filter = Filter & "= '" & e.Form.Controls("ComboBox2").Value & "'"
    Else
        Filter = Filter & " Is Null"
    End If
    Tables("职工总库").Filter = Filter
End If


 回到顶部
帅哥哟,离线,有人找我吗?
zhuzhi
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:476 积分:4039 威望:0 精华:0 注册:2011/11/2 8:55:00
  发帖心情 Post By:2012/11/8 17:46:00 [只看该作者]

以下是引用狐狸爸爸在2012-11-8 15:49:00的发言:

用心去体会下面的代码:

 

 

Dim Filter As String
If e.Form.Controls("ComboBox1").Value IsNot Nothing Then
    Filter =  e.Form.Controls("ComboBox1").Value
    If  e.Form.Controls("ComboBox2").Value IsNot Nothing Then
        Filter = Filter & "= '" & e.Form.Controls("ComboBox2").Value & "'"
    Else
        Filter = Filter & " Is Null"
    End If
    Tables("职工总库").Filter = Filter
End If

呃,感谢狐爸!可以使用!

我感觉,重点在于那两个then(因为这两个,让我另外一个想法也实现了,获得了双倍的答案,所以更加高兴!谢谢~!

Filter =  e.Form.Controls("ComboBox1").Value是不是定义ComboBox1的值啊?

Filter = Filter & "= '" & e.Form.Controls("ComboBox2").Value & "'"这一句,哪个字段代表ComboBox1的值呢……那几个"号,也让我有些搞不清楚。

底子薄,抱歉!只能伸手了……
此外,还想请教一个问题,如何让ComboBox2的选值的范围,取决于ComboBox1的选值呢?比如说ComboBox1选择了车间,ComboBox2就自动变成一车间、二车间……ComboBox1再选择性别,ComboBox2就自动在男和女中选择。

 

十分的感谢啊!


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/11/8 17:50:00 [只看该作者]

设置ComboBox2的Enter事件:

 

Select Case e.Form.Controls("ComboBox1").Value

     Case "车间"

          e.Sender.ComboList = "一车间|二车间"

     Case "性别"

           e.Sender.ComboList = "男|女"

End Select


 回到顶部
帅哥哟,离线,有人找我吗?
zhuzhi
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:476 积分:4039 威望:0 精华:0 注册:2011/11/2 8:55:00
  发帖心情 Post By:2012/11/8 18:12:00 [只看该作者]

原来如此!我一定要记下来,背下来,谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/11/8 18:12:00 [只看该作者]

不需要记,也不需要背,多看帮助多练习,不懂就问。

 回到顶部
帅哥哟,离线,有人找我吗?
Fotable
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1015 积分:6979 威望:0 精华:0 注册:2012/8/1 18:41:00
  发帖心情 Post By:2012/11/8 18:38:00 [只看该作者]

你还可以用一个输入框 来输入运算符

 回到顶部