以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]查询筛选代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=77551)

--  作者:xianzheng
--  发布时间:2015/11/20 11:50:00
--  [求助]查询筛选代码

下面三个文本框输入筛选代码如何写成一行,根据输入内容进行筛选

Dim dt1 As WinForm.DateTimePicker
Dim dt2 As WinForm.DateTimePicker
dt1 = e.Form.Controls("StartDate")
dt2 = e.Form.Controls("EndDate")
Dim cj As WinForm.TextBox  = e.Form.Controls("TextBox1")

 

b.Filter ="简称 Like \'*" & cj.Text & "*\' and [日期] >= #" & dt1.Value & "# And [日期] <= #" & dt2.Value & "#"

b.Filter ="名称 Like \'*" & cj.Text & "*\' and [日期] >= #" & dt1.Value & "# And [日期] <= #" & dt2.Value & "#"

b.Filter ="中文简称 Like \'*" & cj.Text & "*\' and [日期] >= #" & dt1.Value & "# And [日期] <= #" & dt2.Value & "#


--  作者:xianzheng
--  发布时间:2015/11/20 12:22:00
--  

只用一个"TextBox1",不要再增加文本框


--  作者:大红袍
--  发布时间:2015/11/20 13:06:00
--  

Dim filter As String = "1=2"
For Each dc As Col In Tables("表A").Cols
    Filter &= " or Convert(" & dc.Name & ",\'System.String\') like \'%" & e.Form.Controls("TextBox1").Text & "%\'"
Next

Tables("表A").Filter = filter


--  作者:xianzheng
--  发布时间:2015/11/21 9:59:00
--  

大红炮大师,上面代码会在所有的列中筛选,我想只在“简称”列,“中文简称”列,“名称”列,这三列中筛选,代码如何改呢


--  作者:Hyphen
--  发布时间:2015/11/21 10:22:00
--  

加上判断

For Each dc As Col In Tables("表A").Cols
    Select Case dc.Name
        Case "简称","中文简称","名称"
            Filter &= " or Convert(" & dc.Name & ",\'System.String\') like \'%" & e.Form.Controls("TextBox1").Text & "%\'"
    End Select
Next