Foxtable(狐表)用户栏目专家坐堂 → 【求助】还是数据表筛选问题。


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

主题:【求助】还是数据表筛选问题。

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


加好友 发短信
等级:幼狐 帖子:95 积分:1484 威望:0 精华:0 注册:2018/3/5 8:52:00
【求助】还是数据表筛选问题。  发帖心情 Post By:2019/3/1 18:21:00 [只看该作者]

已知窗口中一个textbox, 还有一个表tables("表A")(假如里面有十个列),在textbox中输入字符串(例如: “a,b,c,d...”)。
默认没有输入情况下,tables("表A")显示20行,当输入a时,tables("表A")就显示14行,当输入到a,b时,tables("表A")就显示10行,当输入到a,b,c时,tables("表A")就显示4行。。。。  也就是说,在textbox中输入的参数越多, tables("表A")筛选出的行数就越少。a,b,c,d分别匹配表A的十个列中四个不重复的列,匹配顺序可能不一样(a可能匹配第一列,也可能匹配第二列,第三列)。 请问: 具体用代码怎么实现?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/1 18:36:00 [只看该作者]

合成这样的筛选条件

 

Tables("表A").filter = "(第一列='a' or 第二列='a' or 第三列='a') and (第一列='b' or 第二列='b' or 第三列='b')"

 

参考代码

 

Dim str As String = "a,b,c"
Dim filter As String = "1=1"
Dim t As Table = Tables("表A")
For Each s As String In str.split(",")
    Dim f As String = ""
    For Each c As Col In t.Cols
        f &= " or " & c.name & " = '" & s & "'"
    Next
    filter &= " and (" & f.SubString(4) & ")"
Next
msgbox(filter)


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


加好友 发短信
等级:幼狐 帖子:95 积分:1484 威望:0 精华:0 注册:2018/3/5 8:52:00
  发帖心情 Post By:2019/3/2 9:24:00 [只看该作者]

报错了?是什么原因?
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20190302092301.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:110646 积分:563138 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/3/2 9:36:00 [只看该作者]

msgbox(filter)显示最终合成的条件是什么?

 回到顶部