以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助] (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=183424) |
-- 作者:moseser -- 发布时间: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,就是我获取的需要查询的列的名称) ,请大神指教如何编写代码,谢谢 |
-- 作者:有点蓝 -- 发布时间: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 |