以文本方式查看主题

-  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=31768)

--  作者:nand
--  发布时间:2013/4/20 9:53:00
--  模糊查询

在一文本框事件写入代码:

 

Dim txt As String = e.Form.Controls("查询").Text
Dim tbl As Table = Tables("标准产品_标准产品")
If txt = "" Then
    tbl.Filter = ""
Else
    txt = "\'*" & txt & "*\'"
    tbl.Filter = "产品名称 Like " & txt & " Or 型号 Like " & txt & " Or 规格 Like " & txt & " Or 图号 Like " & txt
End If

 

查找规格为:600*600*1020

 

报错为:Like 运算符中出错: 字符串模式“*600*6*”无效。

 

字样的出错,也就是带“*”号的地方出错,求师傅,师兄帮忙解决

[此贴子已经被作者于2013-4-20 9:54:23编辑过]

--  作者:Bin
--  发布时间:2013/4/20 9:59:00
--  
不能在中间使用*号的吧
--  作者:nand
--  发布时间:2013/4/20 10:07:00
--  
是的,但我们存在这种规格和筛选条件
--  作者:XYT
--  发布时间:2013/4/20 10:07:00
--  
Output.Show( "600*600*1020" Like "###*###*####")
[此贴子已经被作者于2013-4-20 10:11:26编辑过]

--  作者:FoxMan
--  发布时间:2013/4/20 10:26:00
--  
这样试试:
Dim txt As String = e.Form.Controls("查询").Text
Dim tbl As Table = Tables("标准产品_标准产品")
If txt = "" Then
    tbl.Filter = ""
Else
    txt = "\'*" & txt.replace("*","[*]")  & "*\'"
    tbl.Filter = "产品名称 Like " & txt & " Or 型号 Like " & txt & " Or 规格 Like " & txt & " Or 图号 Like " & txt 
End If
--  作者:lsy
--  发布时间:2013/4/20 10:32:00
--  

e.Form.Controls("查询").Text = e.Form.Controls("查询").Text.Replace("*","")

Dim txt As String = e.Form.Controls("查询").Text
Dim tbl As Table = Tables("标准产品_标准产品")
If txt = "" Then
    tbl.Filter = ""
Else
    txt = "\'*" & txt & "*\'"
    tbl.Filter = "产品名称 Like " & txt & " Or 型号 Like " & txt & " Or 规格 Like " & txt & " Or 图号 Like " & txt
End If

[此贴子已经被作者于2013-4-20 10:46:54编辑过]

--  作者:XYT
--  发布时间:2013/4/20 10:35:00
--  

6楼正解


--  作者:nand
--  发布时间:2013/4/20 10:47:00
--  
谢谢5楼的师兄,完美解决,多谢!!
--  作者:lsy
--  发布时间:2013/4/20 10:54:00
--  
以下是引用nand在2013-4-20 10:47:00的发言:
谢谢5楼的师兄,完美解决,多谢!!

先别忙着高兴,狐表里的单引号和方括号,出的错误比这还厉害,不如在查询的时候事先去掉,一了百了,省去烦恼。