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 中的更新语句错误的主要内容,如果未能解决你的问题,请参考以下文章

MS Access:使用多个连接更新语句 [重复]

Ms Access SQL 更新语句不起作用

针对Access数据库的Update语句中的语法错误(使用OleDbCommandBuilder)

查询中的Access UPDATE语句无法实际更新

Access 2010 中的 INSERT INTO 语句中出现 SQL 语法错误

我无法使用 C# 语句更新 Access 2007 表