Foxtable(狐表)用户栏目专家坐堂 → 关于自定义录入界面,搜索出错的问题。


  共有9851人关注过本帖树形打印复制链接

主题:关于自定义录入界面,搜索出错的问题。

帅哥哟,离线,有人找我吗?
yacity
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:532 积分:4020 威望:0 精华:0 注册:2011/6/18 12:41:00
关于自定义录入界面,搜索出错的问题。  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40574 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2011/8/12 18:54:00 [只看该作者]

*改为×

 回到顶部
美女呀,离线,留言给我吧!
yangming
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2011/8/12 18:57:00 [只看该作者]

10*12*0.5,中的*号,改成×,试试

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/13 8:38:00 [只看该作者]

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

[姓名] Like '*赫*'

[姓名] Like '赫*'

[姓名] Like '*赫'

 

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

 

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

 

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

 

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

 

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

 

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

 

[姓名] Not Like '李*'

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
yacity
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:532 积分:4020 威望:0 精华:0 注册:2011/6/18 12:41:00
  发帖心情 Post By:2011/8/13 8:42:00 [只看该作者]

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

录入的时候多不方便呀。


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:532 积分:4020 威望:0 精华:0 注册:2011/6/18 12:41:00
  发帖心情 Post By:2011/8/13 8:46:00 [只看该作者]

谢谢 我发现 把 Textbox 的属性 中文输入 设置为 TRUE 当 10 变成10(全角)即 10*12*0.05(全角) 这样是可以使用的。

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/13 8:46:00 [只看该作者]

看六楼

 回到顶部