以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  filter 总是迷糊  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=63512)

--  作者:machle
--  发布时间:2015/1/22 15:23:00
--  filter 总是迷糊
遇到这种稍微变化一些的filter,就迷糊了。
下面是我的问题:筛出来的结果总有问题。

三个text,一个table,前一个是完全匹配,后两个是模糊匹配,只要满足一个,就把结果筛出来。

Dim Filter1 As String
Dim Filter2 As String
Dim Filter As String
Dim txt1 As String = e.Form.Controls("TextBox1").Text
Dim txt2 As String = e.Form.Controls("TextBox2").Text
Dim txt3 As String = e.Form.Controls("TextBox3").Text

txt1 = "\'%" & txt1 & "%\'"
Filter1 = "编号 = " & txt1

txt2 = "\'%" & txt2 & "%\'"
txt3 = "\'%" & txt3 & "%\'"
Filter2 = "(产品名称 Like " & txt2 & " or 运输名称 Like " & txt3 & ")"

Filter = filter1 & " or " & filter2

Dim dr As DataRow
With DataTables("ProductInformation")    
    
         .LoadFilter = Filter
    .Load
    dr = .Find(Filter)

End With
--  作者:Bin
--  发布时间:2015/1/22 15:24:00
--  
不用要括号.
--  作者:machle
--  发布时间:2015/1/22 15:24:00
--  
写错了一个, txt1 = "\'%" & txt1 & "%\'"  中的两个百分号不存在。问题如上。

--  作者:machle
--  发布时间:2015/1/22 15:25:00
--  
遇到这种稍微变化一些的filter,就迷糊了。
下面是我的问题:筛出来的结果总有问题。

三个text,一个table,前一个是完全匹配,后两个是模糊匹配,只要满足一个,就把结果筛出来。

Dim Filter1 As String
Dim Filter2 As String
Dim Filter As String
Dim txt1 As String = e.Form.Controls("TextBox1").Text
Dim txt2 As String = e.Form.Controls("TextBox2").Text
Dim txt3 As String = e.Form.Controls("TextBox3").Text

txt1 = "\'" & txt1 & "\'"
Filter1 = "编号 = " & txt1

txt2 = "\'%" & txt2 & "%\'"
txt3 = "\'%" & txt3 & "%\'"
Filter2 = "(产品名称 Like " & txt2 & " or 运输名称 Like " & txt3 & ")"

Filter = filter1 & " or " & filter2

Dim dr As DataRow
With DataTables("ProductInformation")    
    
         .LoadFilter = Filter
    .Load
    dr = .Find(Filter)

End With
--  作者:有点甜
--  发布时间:2015/1/22 15:26:00
--  
 代码是没问题的,具体什么问题?
--  作者:Bin
--  发布时间:2015/1/22 15:27:00
--  

Filter1 = "编号 = \'" & txt1 & "\'"  等于不需要%号 
--  作者:Bin
--  发布时间:2015/1/22 15:28:00
--  
看2楼不要加括号
Filter2 = "产品名称 Like " & txt2 & " or 运输名称 Like " & txt3 

--  作者:machle
--  发布时间:2015/1/22 15:35:00
--  回复:(Bin)看2楼不要加括号Filter2 = "产品名称 Li...
 把括号去掉就对了。
这语法上次我也问过一次,加括号,这次又不加括号了,真是变幻莫测啊图片点击可在新窗口打开查看

--  作者:machle
--  发布时间:2015/1/22 15:35:00
--  回复:(有点甜) 代码是没问题的,具体什么问题...
 根据bin的解答,弄出来了
--  作者:machle
--  发布时间:2015/1/22 15:37:00
--  回复:(有点甜) 代码是没问题的,具体什么问题...
 谢谢!但是这个filter的语法,实在不太理解。上次并列着写,and和or一起,bin告诉我要加括号,这次我以为两个情况,就加了括号,又错了。
情况就是我搞不清楚语法啊。哪里有详细介绍啊!