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

VBA执行Access SQL UPDATE语句遇语法错误,请求排查修正

Access UPDATE语句语法错误排查与修正

嘿,我来帮你把这两个更新语句的问题揪出来,都是日常写VBA操作Access时很容易踩的小坑:

第一种尝试的核心问题

你在SET子句结尾多写了一个逗号,这是直接触发语法错误的原因!
原代码里SET [Close_Time] = #" & Time & "#, WHERE这个逗号完全多余,SET子句写完列的赋值后,要直接衔接WHERE条件,不能加逗号。

另外还有个细节要注意:如果你的ID字段是数字类型(比如自动编号、整数),那WHERE ID = '" & SessionID & "'里的单引号要去掉——数字类型的字段不需要用引号包裹,文本类型才需要。

修正后的代码:

CurrentDb.Execute "UPDATE [MS Access;pwd=" & strPassword & ";database=" & DBpath & "\" & DBname & "].[" & tblengagement & "] SET [Close_Time] = #" & Time & "# WHERE ID = " & SessionID

(如果SessionID是文本类型,再把单引号加回去:WHERE ID = '" & SessionID & "')

第二种尝试的核心问题

你混淆了UPDATE和INSERT的语法!UPDATE语句根本没有VALUES这种写法,它的逻辑是通过SET 列名=新值来更新记录,再用WHERE指定要更新的行。你现在的写法完全是INSERT语句的结构,自然会报语法错误。

如果想调整成正确的UPDATE写法,应该去掉VALUES相关的部分,恢复WHERE条件,写成这样:

CurrentDb.Execute "UPDATE [MS Access;pwd=" & strPassword & ";database=" & DBpath & "\" & DBname & "].[" & tblengagement & "] " _
& "SET [Close_Time] = #" & Time & "# " _
& "WHERE ID = " & SessionID

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:21:37