以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  数据筛选[求助]  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=104163)

--  作者:科研小子
--  发布时间:2017/7/24 17:25:00
--  数据筛选[求助]

在 表A的datacolchanged事件里的代码:


1.Select Case e.DataCol.Name

2.    Case  "主诉"

3.    For i As Integer =1 To DataTables("B").DataCols.Count-1  

4.    Dim str As String = e.DataRow("主诉")                  ’str为表A主诉列的内容

5.         If str> "" AndAlso str.Contains(Tables("B").Cols(i).name) Then   ’如果str包含biaoB的列名(第一个列名为【发热】)

6.       Tables("B").Filter = "[发热] Is not null"   ’在表B中筛选出【发热】列不为空的行


            ····

            End If

             Next  

           End Select


现在的问题是,我要做成循环语句,能不能把第6行代码中的“[发热]”用其他的变量比如i这些替换掉??谢谢大家,弄了一个下午,还是没有头绪,呜呜


--  作者:有点甜
--  发布时间:2017/7/24 18:00:00
--  
Select Case e.DataCol.Name
    Case  "主诉"
        Dim filter As String = "1=2"
        For i As Integer =1 To DataTables("表B").DataCols.Count-1
            Dim str As String = e.DataRow("主诉")
            Dim name As String = Tables("表B").Cols(i).name
            If str> "" AndAlso str.Contains(name) Then
                filter &= " or " & name & " Is not null"   \'在表B中筛选出【发热】列不为空的行
            End If
        Next
        Tables("表B").filter = filter
End Select

--  作者:科研小子
--  发布时间:2017/7/24 18:57:00
--  
您好,请问  filter &= " or " & name & " Is not null"这句代码怎么理解?没怎么看懂咯!
--  作者:有点蓝
--  发布时间:2017/7/24 20:17:00
--  
name是变量,代表列名

这一句代码的用意是拼凑成查询用的表达式,最后filter结果类似

第一列 is not null or 第二列 is not null or 第三列 is not null or ......