Access VBA删除SQL语句报错‘Expected end of Statement’,WHERE高亮如何解决?
解决VBA中DELETE语句拼接的"Expected end of Statement"错误
错误核心原因
你的代码问题出在SQL字符串拼接不完整:WHERE关键字没有被包含在字符串常量中,也未用&完成后续语句的拼接,导致VBA无法正确解析这条赋值语句,触发语法错误。
修正后的代码
' 拼接完整的DELETE SQL语句 Dim sql As String sql = "DELETE * FROM DailyLog_" & UserLoggedOn & " WHERE [RespLBPerson] <> '" & Me.LstRespLBPers.Value & "'" ' 执行SQL语句(补充完整执行逻辑) CurrentDb.Execute sql, dbFailOnError
关键修正点
- 用
&连接DailyLog_" & UserLoggedOn与后续的" WHERE [RespLBPerson] <> '" & Me.LstRespLBPers.Value & "'",将整个SQL语句拼成一个完整字符串 - 若
RespLBPerson是文本类型字段,需用单引号包裹列表框的选中值(Me.LstRespLBPers.Value);如果是数字类型则去掉单引号 - 明确使用
.Value属性获取列表框选中值,代码逻辑更清晰
调试小技巧
执行前可以打印生成的SQL语句,检查格式是否符合预期:
Debug.Print sql
打开VBA编辑器的「立即窗口」(Ctrl+G)即可查看语句内容,方便快速排查格式问题。
内容的提问来源于stack exchange,提问作者pjenks25
相关产品推荐
相关产品推荐

