Foxtable(狐表)用户栏目专家坐堂 → [求助]请教多种筛选组合使用的代码


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

主题:[求助]请教多种筛选组合使用的代码

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/10 11:15:00 [显示全部帖子]

 简单写一个,供楼主参考。

Tables("信息表").filter = ""

 

Dim hg As WinForm.CheckBox = e.Form.Controls("CheckBox1")

Dim ds As WinForm.CheckBox = e.Form.Controls("CheckBox2")

Dim yqx As WinForm.CheckBox = e.Form.Controls("CheckBox3")

Dim filter1 As String = "1=2"

 

If hg.Checked then
    filter1 = filter1 & " or 状态 = '合格' "
End If

If ds.Checked then
    filter1 = filter1 & " or 状态 = '待审' "
End If

If yqx.Checked then
    filter1 = filter1 & " or 状态 = '己取消'"
End If

 

'----------------------------------------------


Dim gj As WinForm.CheckBox = e.Form.Controls("CheckBox4")

Dim yb As WinForm.CheckBox = e.Form.Controls("CheckBox5")

Dim filter2 As String = "1=2"


If gj.Checked then
    filter2 = filter2 & " or 分类 = '关键' "
End If

If yb.Checked then
    filter2 = filter2 & " or 分类 = '一般'"
End If


msgbox("(" & filter1 & ") And (" & filter2 & ")")


Tables("信息表").Filter = "(" & filter1 & ") And (" & filter2 & ")"


[此贴子已经被作者于2012-11-10 11:14:54编辑过]

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/10 11:58:00 [显示全部帖子]

 加入1=2,主要是想不必判断filter是否是空,直接可以连接。

 1=2 or 状态 = '合格'

 这样,语法就不会有错,而1=2,本来就是假,不会影响or运算。

----------------------

 msgbox("(" & filter1 & ") And (" & filter2 & ")")

 这句代码,主要是想弹出给你看最后生成的条件是什么。

 --------------------------------

 or 和 and,是有优先级别的,就好象 加+ 和 乘* 一样,所以左右要加括号

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/10 15:59:00 [显示全部帖子]

 把报错的内容贴上来。图片。

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/10 17:39:00 [显示全部帖子]

 楼主,那你希望是怎样一种条件去筛选呢?

 我不懂了。你筛选的条件好像说不太通吧?

 没有选中,你希望怎样显示?
[此贴子已经被作者于2012-11-10 17:39:28编辑过]

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/12 10:15:00 [显示全部帖子]

 

Tables("信息表").filter = ""

 

Dim hg As WinForm.CheckBox = e.Form.Controls("CheckBox1")

Dim ds As WinForm.CheckBox = e.Form.Controls("CheckBox2")

Dim yqx As WinForm.CheckBox = e.Form.Controls("CheckBox3")

Dim filter1 As String = "1=2"

 

If hg.Checked then
    filter1 = filter1 & " or 状态 = '合格' "
End If

If ds.Checked then
    filter1 = filter1 & " or 状态 = '待审' "
End If

If yqx.Checked then
    filter1 = filter1 & " or 状态 = '己取消'"
End If

 

'----------------------------------------------


Dim gj As WinForm.CheckBox = e.Form.Controls("CheckBox4")

Dim yb As WinForm.CheckBox = e.Form.Controls("CheckBox5")

Dim filter2 As String = "1=2"


If gj.Checked then
    filter2 = filter2 & " or 分类 = '关键' "
End If

If yb.Checked then
    filter2 = filter2 & " or 分类 = '一般'"
End If


Dim filter As String

If filter1 <> "1=2" Then

    filter = "(" & filter1 & ") " 

Else

    filter = "1=1"

End If

If filter2 <> "1=2" Then filter = "And (" & filter & filter2 & ")"


Tables("信息表").Filter = filter

[此贴子已经被作者于2012-11-12 10:15:26编辑过]

 回到顶部