以文本方式查看主题

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

--  作者:扶风
--  发布时间: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
图片点击可在新窗口打开查看

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


--  作者:大红袍
--  发布时间: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


--  作者:大红袍
--  发布时间: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(",") & ")"