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


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

主题:[求助]

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


加好友 发短信
等级:三尾狐 帖子:615 积分:5246 威望:0 精华:0 注册:2022/4/4 14:42:00
[求助]  发帖心情 Post By:2022/11/4 14:13:00 [只看该作者]

以下为我的源代码, 目的是,通过 在文本框输入内容,进行快速筛选;

比如 输入【钢筋 t -m3】,这代表,项目名称、项目特征、计量单位、单位工程、部位 中包含 ”钢筋“、“t”字眼,不包含”m3“字眼的行;此目的已经实现,如下代码:


If e.TextBox.Text IsNot Nothing Then
    Dim filter As String = "1=1"
    Dim sp() As String = e.TextBox.Text.split(" ")
    For Each s As String In sp
        If s.StartsWith("-") Then
            Dim n As Integer = s.Length
            If n > 1 Then 
                s = right(s, n - 1)

                
                filter = filter & " and not (项目名称 like '%" & s & "%' or 项目特征 like '%" & s & "%' or 计量单位 like '%" & s & "%' or 单位工程 like '%" & s & "%' or 部位 like '%" & s & "%'   )" 
            End If 
        Else
            filter = filter & " and (项目名称 like '%" & s & "%' or 项目特征 like '%" & s & "%' or 计量单位 like '%" & s & "%' or 单位工程 like '%" & s & "%' or 部位 like '%" & s & "%'   )" 
        End If
    Next

            Tables("清单_Table1").Filter = filter 

    
End If

我现在想改善下次代码,就是  其中 项目名称、项目特征、计量单位、单位工程…… ,这些列我想做成动态的,
比如,通过对话框进行勾选,对某些列,进行筛选,清单如何编写代码?

这个地方感觉很复杂,思路我有,只是 双引号,单引号,如何连接,什么的,老搞不明白

如果,有一个lrs (这个是list,就是我获取的需要查询的列的名称) ,请大神指教如何编写代码,谢谢




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


加好友 发短信
等级:超级版主 帖子:107469 积分:546624 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/11/4 14:56:00 [只看该作者]

dim 选择的列() as string = {"项目名称","项目特征",......}
……
            If n > 1 Then 
                s = right(s, n - 1)
dim f2 as string = ""
for each s3 as string in 选择的列
f2 = f2 & " or " & s3 & " like  '%" & s & "%'"
next
f2 = f2.substring(3)
                
                filter = filter & " and not (" & f2 & ")" 
            End If 


 回到顶部