以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  多个值合并筛选  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=17257)

--  作者:明丰
--  发布时间:2012/3/8 13:12:00
--  多个值合并筛选
 

Dim txt As String = e.Form.Controls("TextBox1").Text

Dim tbl As Table = Tables("A")

If txt = "" Then

    tbl.Filter = ""

Else

    If txt.contains("*")

 

        txt =  "\'*" & txt.replace("*","[*]") & "*\'"     

 

    Else

        txt = "\'*" & txt & "*\'"

    End If

    tbl.Filter = "第一列 Like " & txt & " "     

End If

 

上面的代码只能筛选符合条件的行,如果在文本框输入“中国人”时,能同时筛选出第一列分别包含“中”、“国”、“人”的行,能用“[字符列表]”设置吗?请问如何设置?

 

[此贴子已经被作者于2012-3-8 13:14:39编辑过]

--  作者:czy
--  发布时间:2012/3/8 13:18:00
--  
当然可以了,用循环语句遍历txt.Length,然后组合成复选语句即可。
--  作者:明丰
--  发布时间:2012/3/8 14:11:00
--  

Dim txt1 As String = e.Form.Controls("TextBox1").Text
Dim txt,dr As String
Dim tbl As Table = Tables("表A")
If txt1 = "" Then
    tbl.Filter = ""
Else
    For r As Integer = 0 To txt1.length - 1
        txt = txt1(r)
        If txt.contains("*")
            txt =  "\'*" & txt.replace("*","[*]") & "*\'"
        Else
            txt = "\'*" & txt & "*\'"
        End If
        dr = dr &  " 第一列 Like " & txt & " Or "
    Next
    dr = dr.Trimend(" ", "r","O")
    tbl.Filter = dr
End If

 

如果能用“[字符列表]”筛选,就简单多了。