以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  语法错误:“'*1*'”运算符后缺少操作数。  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=142707)

--  作者:巷弄太过弯曲
--  发布时间:2019/11/4 13:36:00
--  语法错误:“'*1*'”运算符后缺少操作数。
老师,请问我在查询按钮中写了查询代码,为什么我在执行的时候会报错
图片点击可在新窗口打开查看此主题相关图片如下:企业微信截图_20191104133335.png
图片点击可在新窗口打开查看
是不是代码有问题
Dim filter As String
Dim sts() As String = {"物料名称","客户","物料编号","型号规格"}
For Each st As String In sts
    Dim val As String = e.Form.Controls(st).value
    If val > "" Then
        If filter = "" Then
            filter = st & "like \'*" & val & "*\'"
        Else
            filter = filter & " and " & st & "like \'*" & val & "*\'"
        End If
    End If
Next
Tables("物料信息").Filter = filter

--  作者:有点蓝
--  发布时间:2019/11/4 13:56:00
--  
对于表达式条件,*号有特殊含义,如果数据里有*号,这样处理

Dim filter As String
Dim sts() As String = {"物料名称","客户","物料编号","型号规格"}
For Each st As String In sts
    Dim val As String = e.Form.Controls(st).value
    If val > "" Then.
val = val.replace("*","[*]")
        If filter = "" Then
            filter = st & "like \'%" & val & "%\'"
        Else
            filter = filter & " and " & st & "like \'%" & val & "%\'"
        End If
    End If
Next
Tables("物料信息").Filter = filter

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

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

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

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