以文本方式查看主题

-  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"