以文本方式查看主题 - 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")
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 |