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
相关产品推荐
相关产品推荐

