以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 求助,下面这个代码筛选结果出错 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=129195) |
-- 作者:jjjeyes -- 发布时间:2018/12/23 22:41:00 -- 求助,下面这个代码筛选结果出错 Dim Filter As String Dim sts() As String = {"A列","B列","C列","D列"} Dim tbl As Table = Tables("测试成绩表") If e.Form.Controls("全部").Checked = True \' 如果状态选择了"全部" tbl.DataTable.loadFilter = "" tbl.DataTable.load End If If e.Form.Controls("未测完").Checked = True \' 如果状态选择了"未测完" For Each st As String In sts tbl.DataTable.loadFilter = "[" & st & "] Is Null" tbl.DataTable.load Next End If If e.Form.Controls("免测").Checked = True \' 如果状态选择了"免测" tbl.DataTable.LoadFilter = "[备注] = \'免测\'" tbl.DataTable.load End If 以上这段代码,本来是为了检查如果"A列","B列","C列","D列"任何一列为空就筛选出来。但遇到“A列”为空,后面列如果有值,反而不能筛选出来。 请问如何纠正这段代码?
|
-- 作者:有点甜 -- 发布时间:2018/12/23 22:59:00 -- Dim Filter As String Dim sts() As String = {"A列","B列","C列","D列"} Dim tbl As Table = Tables("测试成绩表") If e.Form.Controls("全部").Checked = True \' 如果状态选择了"全部" tbl.DataTable.loadFilter = "" tbl.DataTable.load ElseIf e.Form.Controls("未测完").Checked = True \' 如果状态选择了"未测完" Dim str As String = "1=2" For Each st As String In sts str &= " or [" & st & "] Is Null" Next tbl.DataTable.loadFilter = str tbl.DataTable.load ElseIf e.Form.Controls("免测").Checked = True \' 如果状态选择了"免测" tbl.DataTable.LoadFilter = "[备注] = \'免测\'" tbl.DataTable.load End If |
-- 作者:jjjeyes -- 发布时间:2018/12/24 9:28:00 -- str &= " or [" & st & "] Is Null" 这里是不是有点问题?
|
-- 作者:有点甜 -- 发布时间:2018/12/24 10:04:00 -- 1、执行报什么错?
2、实例发上来测试。 |
-- 作者:jjjeyes -- 发布时间:2018/12/24 22:46:00 -- 执行没有报错,也运行正确。就是看不懂 &= 这里是什么意见 |
-- 作者:有点蓝 -- 发布时间:2018/12/24 22:52:00 -- str &= " or [" & st & "] Is Null" 等同于 str = str & " or [" & st & "] Is Null"
|