Foxtable(狐表)用户栏目专家坐堂 → Like 运算符中出错


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

主题:Like 运算符中出错

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


加好友 发短信
等级:三尾狐 帖子:672 积分:7909 威望:0 精华:0 注册:2016/6/11 11:10:00
Like 运算符中出错  发帖心情 Post By:2018/6/12 11:23:00 [只看该作者]

第一列为字符类型,按钮代码为:
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   点击按钮提示

Like 运算符中出错: 字符串模式“%3M灭菌指示胶带1222(19mm*55%”无效。
请问老师 出现这个错误提示的原因是什么,是不是不能输入有数字的内容?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/12 11:48:00 [只看该作者]

改成

 

Filter = Filter & "组件名称 Like '%" & .Value.replace("*", "[*]") & "%'" 


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


加好友 发短信
等级:三尾狐 帖子:672 积分:7909 威望:0 精华:0 注册:2016/6/11 11:10:00
  发帖心情 Post By:2018/6/12 12:28:00 [只看该作者]

代码是看懂了 但不明白*为什么要用[]裹起来 是不是*是代表多个字符的原因?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/12 14:26:00 [只看该作者]

以下是引用蓝蚂蚁在2018/6/12 12:28:00的发言:
代码是看懂了 但不明白*为什么要用[]裹起来 是不是*是代表多个字符的原因?

 

看看

 

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

[姓名] Like '%赫%'

[姓名] Like '赫%'

[姓名] Like '%赫'

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

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

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

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

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

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

[姓名] Not Like '李%'

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


 回到顶部