以文本方式查看主题

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

--  作者:PMC5332
--  发布时间:2022/4/24 9:50:00
--  [求助]多列筛选
想对表A前四列任意列的内容进行连续筛选,每次输入新的查找内容后,将在上一结果内筛选。以下代码是不是哪里没弄对?
Dim tbl As Table = Tables("表A")
txt1 = "\'%" & txt1 & "%\'"
图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看
txt2 = "\'%" & txt2 & "%\'"
txt3 = "\'%" & txt3 & "%\'"
txt4 = "\'%" & txt4 & "%\'"
Filter =  "第一列 Like " & txt1 & " Or 第二列 Like " & txt1 & " Or 第三列 Like " & txt1 & " Or  第四列 Like " & txt1
tbl.Filter = Filter
Filter = Filter And ("第一列 Like " & txt2 & " Or 第二列 Like " & txt2 & " Or 第三列 Like " & txt2 & " Or  第四列 Like " & txt2) 
tbl.Filter = Filter 

--  作者:有点蓝
--  发布时间:2022/4/24 9:57:00
--  
参考这种用法:http://www.foxtable.com/webhelp/topics/1058.htm
--  作者:PMC5332
--  发布时间:2022/4/24 10:06:00
--  
这个我看过,就是想看看有没有可以不指定列的筛选? 比如我这种情况,如果指定列进行筛选根本就不行。
数据非常多,想每输入一次关键词就能缩小范围,多次输入后就能找个仅剩的几个选项。如果这种功能不好实现的话,也请告知声,我再研究下。本想对每次的结果进行辅助列标记的,但影响速度。

--  作者:有点蓝
--  发布时间:2022/4/24 10:22:00
--  
帮助的用法一样可以用到多个列,要学会变通

Dim Filter As String
With
 e.Form.Controls("cmbProduct")
    
If .Value IsNot Nothing Then
        Filter = 
"(第一列 like \'%" & .Value & "%\' or 第二列 like \'%" & .Value & "%\')"
    End If
End
 With
With
 e.Form.Controls("cmbCustomer")
    
If .Value IsNot Nothing Then
        
If Filter > "" Then
            Filter = Filter & 
" And "
        
End If
        Filter = Filter & 
"(第一列 like \'%" & .Value & "%\' or 第二列 like \'%" & .Value & "%\')"
    
End If
End
 With