Foxtable(狐表)用户栏目专家坐堂 → [求助] 在单元格输入,查询下拉窗口中几十列的内容,怎么组织过滤字符串好呢?


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

主题:[求助] 在单元格输入,查询下拉窗口中几十列的内容,怎么组织过滤字符串好呢?

美女呀,离线,留言给我吧!
龙潭春早
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:676 积分:4895 威望:0 精华:0 注册:2018/3/22 16:05:00
[求助] 在单元格输入,查询下拉窗口中几十列的内容,怎么组织过滤字符串好呢?  发帖心情 Post By:2020/1/8 21:07:00 [显示全部帖子]


按照帮助中“窗口设计 … 自定义录入界面之三”的内容,设计了录入窗口。

为了动态筛选出可能的客户,系统的帮助在订单表的ChangeEdit事件给出了设置代码:

If e.Col.Name = "客户ID" Then '如果编辑的是客户ID列
If e.Col.DroppedDown Then '如果下拉窗口已经打开
Dim tbl As Table = Tables("窗口1_Table1")
If e.Text = "" Then '如果内容为空
tbl.Filter = "" '显示所有客户
Else '否则,根据输入内容进行模糊筛选
Dim txt As String = "‘ %" & e.Text & "%'"
tbl.Filter = "客户ID Like " & txt & " Or 公司名称 Like " & txt & " Or 地址 Like " & txt & " Or 联系人 Like " & txt
End If
End If
End If

遇到的问题是,开发中要查询的列有几十个,不能像上述代码那样的一一列出。

所以,想用遍历的方式解决,写出了以下代码:

Dim str, strs, flt As String
strs = "A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,……" ’客户表的列名字符串
If e.Col.Name = "客户ID" Then '如果编辑的是客户ID列
If e.Col.DroppedDown Then ' 如果 下拉窗口 已经打开
Dim t As Table = Tables("窗口1_Table1")
If e.Text = "" Then ' 如果 内容为空
t.Filter = "" ' 显示 所有客户
Else            
For Each str In strs.Split(",")
flt & = "Or [" & str & "] Like '%" & e.Text & "%'"
Next
flt = flt.SubString(3)
t.Filter = flt
msgBox(flt)
End If
End If
End If

但是,执行时出错如下截屏。
知道可能是过滤字符串 flt & = "Or [" & str & "] Like '%" & e.Text & "%'" 中的 [" & str & "] 有问题。
要怎么改呢?

图片点击可在新窗口打开查看此主题相关图片如下:在单元格下拉窗口中进行多列的模糊查询.png
图片点击可在新窗口打开查看


 回到顶部