以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请教查询代码  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=41419)

--  作者:tanweijun
--  发布时间:2013/10/18 22:05:00
--  请教查询代码

Dim ch As WinForm.TextBox = e.Form.Controls("车号")
Dim gg As WinForm.TextBox = e.Form.Controls("规格")
Dim shdw As WinForm.TextBox = e.Form.Controls("收货单位")
Dim dz As WinForm.TextBox = e.Form.Controls("到站")
Tables("钢厂发货明细").Filter = "车号 Like \'*"& ch.Text &"*\'And 规格 Like\'*"& gg.Text & "*\'and 收货单位 Like\'*" & shdw.Text & "*\'and 到站 Like\'*" & dz.Text & "*\'"

 

查询出错请指正。先谢谢!


--  作者:有点甜
--  发布时间:2013/10/18 22:08:00
--  
加空格

Tables("钢厂发货明细").Filter = "车号 Like \'*"& ch.Text &"*\' And 规格 Like\'*"& gg.Text & "*\' and 收货单位 Like\'*" & shdw.Text & "*\' and 到站 Like\'*" & dz.Text & "*\'"
--  作者:tanweijun
--  发布时间:2013/10/18 22:26:00
--  
不行点查询就没数据了。
--  作者:有点甜
--  发布时间:2013/10/18 22:30:00
--  
 不好意思,我2楼也写错了,空格加不够,and like后面都是要加空格的。

Tables("钢厂发货明细").Filter = "车号 Like \'*"& ch.Text &"*\' And 规格 Like \'*"& gg.Text & "*\' and 收货单位 Like \'*" & shdw.Text & "*\' and 到站 Like \'*" & dz.Text & "*\'"

--  作者:tanweijun
--  发布时间:2013/10/18 22:43:00
--  

还是一样查询没数据,去掉收货单位和到站的代码就可以查询,是什么原因?


--  作者:有点甜
--  发布时间:2013/10/18 22:58:00
--  
 你复制4楼的代码进去,重新测试,没理由的,确认你的收货单位和到站 有匹配的数据。
[此贴子已经被作者于2013-10-18 22:58:36编辑过]

--  作者:xdongx
--  发布时间:2013/10/19 0:31:00
--  
是SQL的外部表吗? 是的话,应把* 替换为 %。
--  作者:tanweijun
--  发布时间:2013/10/19 10:09:00
--  

是内部表,找到原因了是收货单位字段中没有数据,四个条件一起如果其中一个条件中没数据查询就不显示数据,是这样的吗?四个条件中可以任意选择查询其中几查询吗?请教代码。谢谢!


--  作者:Bin
--  发布时间:2013/10/19 10:12:00
--  
http://www.foxtable.com/help/topics/1058.htm
--  作者:tanweijun
--  发布时间:2013/10/19 13:52:00
--  

Dim Filter As String
With e.Form.Controls("车号")
    If .Value IsNot Nothing Then
        Filter = "车号 = \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("规格")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "规格 = \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("到站")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "到站 = \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("收货单位")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "收货单位 = \'" & .Value & "\'"
    End If
End With

If Filter > "" Then
    Tables("钢厂发货明细").Filter = Filter
End If

 

不能模糊查询,要输完整入,输入2个条件查询不了,请指教,谢谢!