以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]请教多种筛选组合使用的代码 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=25483) |
-- 作者:boooxu -- 发布时间:2012/11/10 10:49: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 Filter As String
With e.Form.Controls("CheckBox1") If hg.checked = True Then If Filter > "" Then Filter = Filter & " or 状态 = \'合格\'" Else Filter = " 状态 = \'合格\'" End If End If End With
With e.Form.Controls("CheckBox2") If ds.checked = True Then If Filter > "" Then Filter = Filter & " or 状态 = \'待审\'" Else Filter = " 状态 = \'待审\'" End If End If End With
With e.Form.Controls("CheckBox3") If yqx.checked = True Then If Filter > "" Then Filter = Filter & " or 状态 = \'己取消\'" Else Filter = " 状态 = \'己取消\'" End If End If End With
Tables("信息表").Filter = Filter |
-- 作者:lin_hailun -- 发布时间: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 msgbox("(" & filter1 & ") And (" & filter2 & ")") Tables("信息表").Filter = "(" & filter1 & ") And (" & filter2 & ")" [此贴子已经被作者于2012-11-10 11:14:54编辑过]
|
-- 作者:boooxu -- 发布时间:2012/11/10 11:52:00 -- 谢谢楼上的狐友,学习中
楼主能不能加点说明,特别是
Dim filter1 As String = "1=2" 和 msgbox("(" & filter1 & ") And (" & filter2 & ")") 这二句能说明下不, 或者告诉下哪里可以查看相关的资料 |
-- 作者:lin_hailun -- 发布时间:2012/11/10 11:58:00 -- 加入1=2,主要是想不必判断filter是否是空,直接可以连接。 1=2 or 状态 = \'合格\' 这样,语法就不会有错,而1=2,本来就是假,不会影响or运算。 ---------------------- msgbox("(" & filter1 & ") And (" & filter2 & ")") 这句代码,主要是想弹出给你看最后生成的条件是什么。 -------------------------------- or 和 and,是有优先级别的,就好象 加+ 和 乘* 一样,所以左右要加括号 |
-- 作者:boooxu -- 发布时间:2012/11/10 12:14:00 -- 明白了,谢谢 |
-- 作者:boooxu -- 发布时间:2012/11/10 15:41:00 -- 这个脚本怎么实现不了功能, 弹出提示错误的窗口了
259d83cc.form---\'(窗口标题) (1=2 or 状态=\'合\')and (1=2)---\'(窗口内容)
什么情况?
|
-- 作者:lin_hailun -- 发布时间:2012/11/10 15:59:00 -- 把报错的内容贴上来。图片。 |
-- 作者:sgs -- 发布时间:2012/11/10 16:00:00 -- 看看foxtable帮助资料,自行设计查询窗口这一章节 |
-- 作者:boooxu -- 发布时间:2012/11/10 16:13:00 -- 这是单点状态合格时的图片,确定后返回空值。 我发现个情况, 单选一个,或单选一种状态的多个选项时都会出错,且返回空值,
二种状态都选,至少选一个时,搜索是对的 |
-- 作者:lin_hailun -- 发布时间:2012/11/10 17:39:00 -- 楼主,那你希望是怎样一种条件去筛选呢? 我不懂了。你筛选的条件好像说不太通吧? 没有选中,你希望怎样显示? [此贴子已经被作者于2012-11-10 17:39:28编辑过]
|