【问题标题】:Syntax error in SQL updateSQL 更新中的语法错误
【发布时间】:2016-10-05 03:11:31
【问题描述】:

我是 MS Access 和 SQL 的新手。现在我正在尝试在 Ms Access 中为我们公司创建一个库存数据库。我尝试从接收表格中提取数据以更新库存余额。但是我在执行 SQL update 语句时遇到了语法错误消息。这对我来说很奇怪,因为我使用了在其他表中成功运行的相同语句。唯一的区别是我以前通过直接文本替换成功更新,而我发生错误的更新在数字对象中工作。

请帮我检查我错在哪里。

这是我的代码:

Private Sub Command96_Click()
CurrentDb.Execute "UPDATE tbl_Current_Stock" & _
                  "SET Stock_Level= Stock_Level + " & Me!txtOrderQty & "" & _
                  "Where tbl_Current_Stock.Raw_Material= " & Me!cboPurchase.Column(1) & ""
 End Sub

谢谢!

【问题讨论】:

标签: sql ms-access


【解决方案1】:

您需要在SETWhere 之前添加空格。否则,您的命令将类似于 UPDATE tbl_Current_stockSET Stock_Level= Stock_Level + 3Where....

Private Sub Command96_Click()
CurrentDb.Execute "UPDATE tbl_Current_Stock" & " " & _
              "SET Stock_Level= Stock_Level + " & Me!txtOrderQty & " " & _
              "Where tbl_Current_Stock.Raw_Material= " & Me!cboPurchase.Column(1) & ""
End Sub

如果Raw_Material 列不是数字,您可能还需要用引号括起来。

【讨论】:

  • 谢谢罗伯特。在我的情况下, Raw_Material 是一个查找列。顺便说一句,我正在写sql语句一个子句一行。我用office word写了代码。你怎么能在我的代码中找到一个空格。你能推荐我一些好的sql代码编辑器吗?谢谢!
【解决方案2】:

正确检查你的句子。没有技术错误。您的查询中缺少一些空格。

只需在“SET”和“where”词前添加空格即可。

CurrentDb.Execute "UPDATE tbl_Current_Stock" & _
              " SET Stock_Level= Stock_Level + " & Me!txtOrderQty & "" & _
              " Where tbl_Current_Stock.Raw_Material= " &     Me!cboPurchase.Column(1) & "" 

【讨论】:

  • 正如你提到的,我把陈述放在句子上,它起作用了!非常感谢您的指正。
【解决方案3】:

朋友,请按照一些提示正确生成更新:

  • 连接查询后检查空格
  • 注意不要生成关键字粘在一起的查询

UPDATE tableTestSET nome = 'My Name' WHERE active IS NOT NULL (错误)

UPDATE tableTest SET name = 'My Name' WHERE active IS NOT NULL 
  • 使用字符串时不要忘记使用引号

UPDATE tableTest SET name = My Name WHERE active IS NOT NULL (错误)

UPDATE tableTest SET name = 'My Name' WHERE active IS NOT NULL

希望对你有帮助……

祝你好运!

【讨论】:

  • 正如maulic 和Robert 所指出的,有些空间遗漏了。谢谢你的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-29
  • 1970-01-01
  • 2016-03-19
相关资源
最近更新 更多