以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于自定义录入界面,搜索出错的问题。  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=11814)

--  作者:yacity
--  发布时间:2011/8/12 18:33:00
--  关于自定义录入界面,搜索出错的问题。

如图所示

 


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

当我在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

 

 请问如何解决?

 

[此贴子已经被作者于2011-8-12 18:44:43编辑过]

--  作者:程兴刚
--  发布时间:2011/8/12 18:54:00
--  
*改为×
--  作者:yangming
--  发布时间:2011/8/12 18:57:00
--  
10*12*0.5,中的*号,改成×,试试
--  作者:狐狸爸爸
--  发布时间:2011/8/13 8:38:00
--  

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

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

[姓名] Like \'赫*\'

[姓名] Like \'*赫\'

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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


--  作者:yacity
--  发布时间:2011/8/13 8:42:00
--  

把 规格 10*12*0.05  改成 10X12X0.05 吗? 把*改成 XYZ 的 X 吗?

录入的时候多不方便呀。


--  作者:狐狸爸爸
--  发布时间:2011/8/13 8:45:00
--  

不用改的,查找的时候,你用代码将查找内容中的*号替换为[*],就解决问题了,用户不会受到任何影响:

 

也就是将这行:

 

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

 

改为:

 

Dim txt As String = e.Form.Controls("TextBox1").Text.Replace("*","[*]")

[此贴子已经被作者于2011-8-13 8:45:36编辑过]

--  作者:yacity
--  发布时间:2011/8/13 8:46:00
--  
谢谢 我发现 把 Textbox 的属性 中文输入 设置为 TRUE 当 10 变成10(全角)即 10*12*0.05(全角) 这样是可以使用的。
--  作者:狐狸爸爸
--  发布时间:2011/8/13 8:46:00
--  
看六楼