SQL更新中的语法错误

时间:2016-10-04 14:42:18

标签: sql ms-access

我是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

谢谢!

3 个答案:

答案 0 :(得分:3)

您需要在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列包装在引号中。

答案 1 :(得分:2)

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

在" SET"之前添加空格。和"其中"词语的

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

答案 2 :(得分:1)

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

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

更新 tableTestSET nome ='我的名字'WHERE有效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

我希望它有所帮助...

祝你好运!