以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- Like 运算符中出错 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=120299) |
-- 作者:蓝蚂蚁 -- 发布时间:2018/6/12 11:23:00 -- Like 运算符中出错 第一列为字符类型,按钮代码为: Dim Filter As String With e.Form.Controls("TextBox2") If .Value IsNot Nothing Then If Filter > "" Then Filter = Filter & " And " End If Filter = Filter & "组件名称 Like \'%" & .Value & "%\'" End If End With Tables("医用耗材目录查询录入主窗口_Table1").Filter = Filter 当我在控件TextBox2输送下面的内容:3M灭菌指示胶带1222(19mm*55 点击按钮提示 请问老师 出现这个错误提示的原因是什么,是不是不能输入有数字的内容?
|
-- 作者:有点甜 -- 发布时间:2018/6/12 11:48:00 -- 改成
Filter = Filter & "组件名称 Like \'%" & .Value.replace("*", "[*]") & "%\'" |
-- 作者:蓝蚂蚁 -- 发布时间:2018/6/12 12:28:00 -- 代码是看懂了 但不明白*为什么要用[]裹起来 是不是*是代表多个字符的原因? |
-- 作者:有点甜 -- 发布时间:2018/6/12 14:26:00 -- 以下是引用蓝蚂蚁在2018/6/12 12:28:00的发言:
代码是看懂了 但不明白*为什么要用[]裹起来 是不是*是代表多个字符的原因?
看看
Like 运算符用于比较字符串,在 Like 比较中,* 和 % 作为通配符,两者可以互换,表示任意个数的字符,通配符只能在开头或者结尾出现。例如: [姓名] Like \'赫%\' [姓名] Like \'%赫\' 分别表示姓名中包括“赫”,姓名开头是“赫”(姓赫),姓名结尾是“赫” 在字符串的中间不允许使用通配符。例如,不允许 \'赫*丰\',也不允许 \'赫%丰\'。 由于* 和 % 默认作为通配符,如果要将其作为比较内容的一部分,必须用方括号括起来,例如: [型号] Like \'A[*]%\' 表示型号以“A*”开头。 在 Like 运算符之前,可以加上Not关键词,表示不类似的意思,例如: [姓名] Not Like \'李%\' 表示姓名不是以“李”开头,也就是不是姓李的。 |