以文本方式查看主题

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

--  作者:13636600695
--  发布时间:2012/5/20 7:30:00
--  [求助]查询出错
用文本框条件筛选时不能用*号,比如:1*1,否则报错
图片点击可在新窗口打开查看此主题相关图片如下:chucuola.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2012-5-20 7:45:10编辑过]

--  作者:布莱克朱
--  发布时间:2012/5/20 14:08:00
--  
模糊筛选本身带*,估计起冲突了
--  作者:狐狸爸爸
--  发布时间:2012/5/21 8:18:00
--  

细看关于通配符的说明:

 

Like 运算符用于比较字符串,在 Like 比较中,* 和 % 作为通配符,两者可以互换,表示任意个数的字符,通配符只能在开头或者结尾出现。例如:

[姓名] Like \'*赫*\'

[姓名] Like \'赫*\'

[姓名] Like \'*赫\'

分别表示姓名中包括“赫”,姓名开头是“赫”(姓赫),姓名结尾是“赫”

在字符串的中间不允许使用通配符。例如,不允许 \'赫*丰\'

由于* 和 % 默认作为通配符,如果要将其作为比较内容的一部分,必须用方括号括起来,例如:

[型号] Like \'A[*]*\'

表示型号以“A*”开头。

在 Like 运算符之前,可以加上Not关键词,表示不类似的意思,例如:

[姓名] Not Like \'李*\'

表示姓名不是以“李”开头,也就是不是姓李的。


--  作者:13636600695
--  发布时间:2012/5/22 20:19:00
--  

我试过了很多方法,还是不行.我不知道[通配符]该放那个位置,可以帮我修改下代码吗?谢谢

Dim txt As String = e.Form.Controls("TextBox1").Text
Dim tbl As Table = Tables("S001")
If txt = "" Then
    tbl.Filter = ""
Else
    txt = "\'*" & txt & "*\'"
    tbl.Filter = "第二列 Like " & txt & " Or 第三列 Like " & txt & " Or 第四列 Like " & txt & " Or 第五列 Like " & txt & " Or 第六列 Like " & txt
 
End If


--  作者:程兴刚
--  发布时间:2012/5/22 22:48:00
--  

Dim txt As String = e.Form.Controls("TextBox1").Text

txt = txt.Replace("*","[*]").Replace("%","[%]")
Dim tbl As Table = Tables("S001")
If txt = "" Then
    tbl.Filter = ""
Else
    txt = "\'*" & txt & "*\'"
    tbl.Filter = "第二列 Like " & txt & " Or 第三列 Like " & txt & " Or 第四列 Like " & txt & " Or 第五列 Like " & txt & " Or 第六列 Like " & txt

End If


--  作者:13636600695
--  发布时间:2012/5/24 5:48:00
--  
问题终于解决了,谢谢各位帮忙