Foxtable(狐表)用户栏目专家坐堂 → 数据筛选[求助]


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

主题:数据筛选[求助]

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


加好友 发短信
等级:婴狐 帖子:19 积分:212 威望:0 精华:0 注册:2017/6/3 10:59:00
数据筛选[求助]  发帖心情 Post By: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这些替换掉??谢谢大家,弄了一个下午,还是没有头绪,呜呜


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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

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


加好友 发短信
等级:婴狐 帖子:19 积分:212 威望:0 精华:0 注册:2017/6/3 10:59:00
  发帖心情 Post By:2017/7/24 18:57:00 [只看该作者]

您好,请问  filter &= " or " & name & " Is not null"这句代码怎么理解?没怎么看懂咯!

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105495 积分:536466 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/7/24 20:17:00 [只看该作者]

name是变量,代表列名

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

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

 回到顶部