以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  求教关于“文本框查寻”事件。  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=55461)

--  作者:qq469000995
--  发布时间:2014/8/17 13:17:00
--  求教关于“文本框查寻”事件。

寻求大侠关于:

下面这段只能查找“第一列”和"第二列"

With e.Form
    If e.sender.text <> "有事找我呀!" Then
        Dim dst As Table = Tables("主窗_Table1")
        Dim txb1 As WinForm.TextBox = .Controls("TextBox1")
        dst.Filter = "[第一列] Like \'*" & txb1.text & "*\' or [第二列] Like \'*" & txb1.text & "*\'"

    End If
End With

 

需要如何修改就可以直接查找“所有列”呢?


--  作者:有点甜
--  发布时间:2014/8/17 14:08:00
--  

简单一点,全部写上

 

dst.Filter = "[第一列] Like \'*" & txb1.text & "*\' or [第二列] Like \'*" & txb1.text & "*\' or [第n列] Like \'*" & txb1.text & "*\'"


--  作者:有点甜
--  发布时间:2014/8/17 14:11:00
--  

或者用代码处理

 

Dim filter As String = "1=2"
For Each dc As DataCol In dst.DataTable.DataCols
    filter &= " or convert(,\'System.String\') like \'%" & txb1.text & "%\'"
Next

dst.Filter = filter

 


--  作者:qq469000995
--  发布时间:2014/8/17 14:31:00
--  
以下是引用有点甜在2014-8-17 14:11:00的发言:

或者用代码处理

 

Dim filter As String = "1=2"
For Each dc As DataCol In dst.DataTable.DataCols
    filter &= " or convert(,\'System.String\') like \'%" & txb1.text & "%\'"
Next

dst.Filter = filter

 

这个说:      语法错误:“,”运算符前缺少操作数。


--  作者:qq469000995
--  发布时间:2014/8/17 14:32:00
--  
以下是引用有点甜在2014-8-17 14:08:00的发言:

简单一点,全部写上

 

dst.Filter = "[第一列] Like \'*" & txb1.text & "*\' or [第二列] Like \'*" & txb1.text & "*\' or [第n列] Like \'*" & txb1.text & "*\'"

就是列比较多啊,所以全部比较麻烦呢,


--  作者:有点甜
--  发布时间:2014/8/17 14:33:00
--  

 哦,写错了

 

Dim filter As String = "1=2"
For Each dc As DataCol In dst.DataTable.DataCols
    filter &= " or convert(" & dc.Name & ",\'System.String\') like \'%" & txb1.text & "%\'"
Next

dst.Filter = filter


--  作者:qq469000995
--  发布时间:2014/8/17 14:55:00
--  
以下是引用有点甜在2014-8-17 14:33:00的发言:

 哦,写错了

 

Dim filter As String = "1=2"
For Each dc As DataCol In dst.DataTable.DataCols
    filter &= " or convert(" & dc.Name & ",\'System.String\') like \'%" & txb1.text & "%\'"
Next

dst.Filter = filter

感谢,非常好用。
--  作者:qq469000995
--  发布时间:2014/8/17 15:50:00
--  

大侠咨询下:

 

With e.Form
    If e.sender.text <> "有事找我呀!" Then
        Dim dst As Table = Tables("工作页_Table1")
        Dim txb1 As WinForm.TextBox = .Controls("TextBox1")
        Dim filter As String = "1=2"
        For Each dc As DataCol In dst.DataTable.DataCols
        filter &= " or convert(" & dc.Name & ",\'System.String\') like \'%" & txb1.text & "%\'"

Next

dst.Filter = filter

    End If
End With

 

With e.Form
    If e.sender.text <> "有事找我呀!" Then
        Dim dst As Table = Tables("工作页_Table2")
        Dim txb1 As WinForm.TextBox = .Controls("TextBox1")
        Dim filter As String = "1=2"
        For Each dc As DataCol In dst.DataTable.DataCols
        filter &= " or convert(" & dc.Name & ",\'System.String\') like \'%" & txb1.text & "%\'"

Next

dst.Filter = filter

    End If
End With

 

只要红色的不同,能不能用一个OR来合并的呀?


--  作者:有点甜
--  发布时间:2014/8/17 16:20:00
--  
Dim tnams() As String = {"工作页_Table1", "工作页_Table2"}
With e.Form
    If e.sender.text <> "有事找我呀!" Then
        For Each tname As String In tnames
        Dim dst As Table = Tables(tname)
        Dim txb1 As WinForm.TextBox = .Controls("TextBox1")
        Dim filter As String = "1=2"
        For Each dc As DataCol In dst.DataTable.DataCols
            filter &= " or convert(" & dc.Name & ",\'System.String\') like \'%" & txb1.text & "%\'"           
        Next
       
        dst.Filter = filter
       
    End If
End With

 


--  作者:qq469000995
--  发布时间:2014/8/17 16:51:00
--  

老大:这个里面错误码比较我多,搞不明白

 

所先 FOR 没有匹配的 next

 

后又没有声明 tnames

 

再然后