You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL查询语句报错‘Missing an Operator’,请求协助排查问题

问题排查:SQL语句"缺少运算符"错误

先看你提供的SQL拼接代码:

"SELECT Users.Email FROM [Users] WHERE ((Users.Role) Like 'AO' AND (Users.Organization) Like " & Me.boOrgs & ")"

错误原因

Users.Organization Like 后面的变量 Me.boOrgs 是字符串值,但你没给它加单引号,导致SQL解析时把变量值当成了字段名或关键字,语法结构断裂,触发"缺少运算符"错误。如果Me.boOrgs包含空格、特殊字符,还会引发其他语法问题,但当前核心错误是缺失单引号。

修正后的代码

"SELECT Users.Email FROM [Users] WHERE ((Users.Role) Like 'AO' AND (Users.Organization) Like '" & Me.boOrgs & "')"

如果需要做模糊匹配(比如匹配包含Me.boOrgs的任意内容),要加上通配符(Access SQL用*,标准SQL用%,根据你的数据库类型调整):

"SELECT Users.Email FROM [Users] WHERE ((Users.Role) Like 'AO' AND (Users.Organization) Like '*" & Me.boOrgs & "*')"

额外建议

直接拼接变量的写法容易引发SQL注入风险,建议用参数化查询替代,示例:

Dim sql As String
Dim cmd As ADODB.Command
Set cmd = New ADODB.Command

sql = "SELECT Users.Email FROM [Users] WHERE Users.Role Like ? AND Users.Organization Like ?"
cmd.CommandText = sql
cmd.Parameters.Append cmd.CreateParameter(, adVarChar, adParamInput, 50, "AO")
cmd.Parameters.Append cmd.CreateParameter(, adVarChar, adParamInput, 255, Me.boOrgs)
' 后续执行命令逻辑

内容的提问来源于stack exchange,提问作者Justin Valentine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 14:46:01