Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
如图所示
当我在pfullname 输入数据的时候 会弹出 新窗口。
在窗口中 输入数据可以筛选。输入中文的时候没有问题 ,但是 输入 规格 列入: "10*12*0.5"
当输入到 10*1 就是 * 号的时候还正常,再往后就出错了。
窗口textchanged代码如下:
Dim txt As String = e.Form.Controls("TextBox1").Text
Dim tbl As Table = Tables("窗口2_Table1")
tbl.Filter= "leveal=2 and deleted=0 and isstop=0 "
tbl.sort="pfullname desc,standard desc,unit1 desc"
If txt = "" Then
tbl.Filter = "leveal=2 and deleted=0 and isstop=0 "
tbl.sort="pfullname desc,standard desc,unit1 desc"
Else
txt = "'*" & txt & "*'"
tbl.filter = "(pfullname Like " & txt & " Or Standard Like " & txt & " Or Unit1 Like " & txt & ") and (leveal=2 and deleted=0 and isstop=0 ) "
tbl.Sort = "pfullname desc,standard desc,unit1 desc"
End If
请问如何解决?
Like 运算符用于比较字符串,在 Like 比较中,* 和 % 作为通配符,两者可以互换,表示任意个数的字符,通配符只能在开头或者结尾出现。例如:
[姓名] Like '*赫*'
[姓名] Like '赫*'
[姓名] Like '*赫'
分别表示姓名中包括“赫”,姓名开头是“赫”(姓赫),姓名结尾是“赫”
在字符串的中间不允许使用通配符。例如,不允许 '赫*丰'
由于* 和 % 默认作为通配符,如果要将其作为比较内容的一部分,必须用方括号括起来,例如:
[型号] Like 'A[*]*'
表示型号以“A*”开头。
在 Like 运算符之前,可以加上Not关键词,表示不类似的意思,例如:
[姓名] Not Like '李*'
表示姓名不是以“李”开头,也就是不是姓李的。
把 规格 10*12*0.05 改成 10X12X0.05 吗? 把*改成 XYZ 的 X 吗?
录入的时候多不方便呀。
不用改的,查找的时候,你用代码将查找内容中的*号替换为[*],就解决问题了,用户不会受到任何影响:
也就是将这行:
Dim txt As String = e.Form.Controls("TextBox1").Text
改为:
Dim txt As String = e.Form.Controls("TextBox1").Text.Replace("*","[*]")