以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  多条件查找  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=64989)

--  作者:qinlao666
--  发布时间:2015/3/6 16:13:00
--  多条件查找

各位老师:我想通个3个条件查询,附图

我做了个查找控件,代码是

Dim bjdh As WinForm.TextBox = e.Form.Controls("报价单号")
Dim khmc As WinForm.TextBox = e.Form.Controls("客户名称")
Dim htdh As WinForm.TextBox = e.Form.Controls("合同单号")
Tables("报价单").Filter ="报价单号 like \'*" & bjdh.Text & "*\'and 客户名称 like \'*" & khmc.Text & "*\'and 合同单号 like \'*" & htdh.Text & "*\'"

 

可是当我在报价单号的文本框里输入内容,其他2个文本框空着的时候,就只能查询到表中3列都有值的行,我想把那2列没值的行也都查找出来,请老师帮我解决下,谢谢!


图片点击可在新窗口打开查看此主题相关图片如下:122.jpg
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2015/3/6 16:16:00
--  

 已经跟你说了啊,参考啊 http://www.foxtable.com/help/topics/1058.htm

 


--  作者:Bin
--  发布时间:2015/3/6 16:16:00
--  
参考帮助http://www.foxtable.com/help/topics/1058.htm
--  作者:lsy
--  发布时间:2015/3/6 16:21:00
--  
Dim flt As String
For Each s As String In "报价单号|客户名称|合同单号".Split("|")
    If e.Form.Controls(s).Text > "" Then
        flt + = " And " & s & " Like \'%" & e.Form.Controls(s).Text & "%\'"
    End If
Next
If flt > "" Then
    flt = flt.SubString(5)
End If
Tables("报价单").Filter = flt

应该是这样吧:

Dim flt As String
For Each s As String In "报价单号|客户名称|合同单号".Split("|")
    If e.Form.Controls(s).Text > "" Then
        flt + = " Or " & s & " Like \'%" & e.Form.Controls(s).Text & "%\'"
    End If
Next
If flt > "" Then
    flt = flt.SubString(4)
End If
Tables("报价单").Filter = flt
[此贴子已经被作者于2015/3/6 16:24:28编辑过]

--  作者:qinlao666
--  发布时间:2015/3/6 16:45:00
--  ok
谢谢,问题已经解决