Foxtable(狐表)用户栏目专家坐堂 → [求助]模糊筛选


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

主题:[求助]模糊筛选

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


加好友 发短信
等级:一尾狐 帖子:481 积分:3258 威望:0 精华:0 注册:2015/6/2 8:33:00
[求助]模糊筛选  发帖心情 Post By:2015/7/29 9:16:00 [只看该作者]

Dim txt As String = e.Form.Controls("TextBox1").Text
Dim tbl As Table = Tables("料号筛选_Table1")
If txt = "" Then
    tbl.Filter = ""
Else
    txt = "'%" & txt.replace("*","[*]") & "%'"
    tbl.Filter = "规格型号 Like " & txt & " Or 代码 Like " & txt
End If

 

老师  我想请教下  我们现有筛选代码如上  我们想要改进下就像Excel里面


图片点击可在新窗口打开查看此主题相关图片如下:搜狗截图20150729090343.jpg
图片点击可在新窗口打开查看

以“?”通配一个字符   以“*”通配任意多个字符  要如何改进


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/29 9:31:00 [只看该作者]

在筛选那里,无法匹配单一字符的。

 

*匹配,也是只能前后,而不能写在中间的。

 

Dim txt As String = e.Form.Controls("TextBox1").Text
Dim tbl As Table = Tables("料号筛选_Table1")
If txt = "" Then
    tbl.Filter = ""
Else
    txt = "'" & txt.replace("*","%") & "'"
    tbl.Filter = "规格型号 Like " & txt & " Or 代码 Like " & txt
End If


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/29 9:36:00 [只看该作者]

 如果真要做此功能,就必须循环每一行处理。

 

 参考代码

 

Dim str As String = "??ab?c*d"
Dim idx As String = "-1,"
For Each r As Row In Tables("表A").Rows
    If r("第一列") Like str Then
        idx &= r("_Identify") & ","
    End If
Next

Tables("表A").filter = "_Identify in (" & idx.Trim(",") & ")"


 回到顶部