Access 中的更新语句错误
Posted
技术标签:
【中文标题】Access 中的更新语句错误【英文标题】:Error in Update Statement in Access 【发布时间】:2014-06-30 09:53:19 【问题描述】:我必须更新一个名为 tbl_InvoicewiseDetails
的表中的 3 个值,为此我正在使用 UPDATE
语句。但是,我在 UPDATE 语句中收到错误 no.3144 SYNTAX Error。
我有以下代码:
CurrentDb.Execute "UPDATE tbl_InvoicewiseDetails" _
& "Set [Form Status] = " & "Received" & "" _
& "Set [Form No] = " & Me.FormSerialNo & "" _
& "Set [Form Amount] =" & Forms![ReceivedbyPBC]![tbl_tempFormDetails].Form![InvoiceValue] & "" _
& "WHERE [Year&Invoice] =" & Forms![ReceivedbyPBC]![tbl_tempFormDetails].Form![Year&Invoice] & ";"
请帮忙
这是从查询生成器的 SQL 视图复制的 SQL 查询:-
UPDATE tbl_InvoiceWiseDetails
SET tbl_InvoiceWiseDetails.[Form Status] = "Received",
tbl_InvoiceWiseDetails.[Form No] = [Forms]![ReceivedbyPBC]![FormSerialNo],
tbl_InvoiceWiseDetails.[Form Amount] = [Forms]![tbl_tempFormDetails]![InvoiceValue]
WHERE
(((tbl_InvoiceWiseDetails.[Year&Invoice])=[Forms]![tbl_tempFormDetails]![Year&Invoice]));
希望对你有帮助
【问题讨论】:
尝试打印该 SQL 语句。 另外,在你的关键字之间加一些空格,这个东西确实需要格式化... 我用 替换了 set 后尝试过,但错误仍然存在 为什么 -1 没有评论?这个问题没有错! 不要直接执行您的 SQL 语句,而是将其分配给字符串变量Debug.Print
该变量,然后 edit 您的问题向我们展示确切您的实际 SQL命令看起来像。我怀疑它存在多个问题。
【参考方案1】:
我认为应该只有一个SET
。将所有以下SET
替换为,
。
如果您引用了表单,CurrentDb.Execute
也将不起作用。那么你必须使用DoCmd.RunSql
。 (编辑:我意识到表单引用是之前评估过的,所以不存在问题)。
我建议您将语句分配给一个变量和Debug.Print
变量。
还有
& "Set [Form Status] = " & "Received" & "" _
应该读
& "Set [Form Status] = 'Received'" & _
[Form No] 是数字吗?如果是字符串,则需要提供引号,如下所示:
& "Set [Form No] = '" & Me.FormSerialNo & "'" _
【讨论】:
表格编号是文本,表格数量是数字 我再次尝试只更新一个字段,现在我的代码是 CurrentDb.Execute "UPDATE tbl_InvoicewiseDetails" _ & "Set [Form Status] = 'Received'" & _ & "WHERE [Year&Invoice] = '" & Forms![ReceivedbyPBC]![tbl_tempFormDetails].Form![Year&Invoice] & "')" 然后?还是错误?你那里有日期字段吗? 你应该显示Debug.Print
产生的语句!
先生,我尝试修改我的代码,它适用于一个字段,代码在这里:- CurrentDb.Execute "UPDATE tbl_InvoicewiseDetails" _ & "Set [Form Status] = 'Received'" & _ "WHERE [Year&Invoice] =" & "'" & Forms![ReceivedbyPBC]![tbl_tempFormDetails].Form![Year&Invoice] & "';"以上是关于Access 中的更新语句错误的主要内容,如果未能解决你的问题,请参考以下文章
针对Access数据库的Update语句中的语法错误(使用OleDbCommandBuilder)