访问中的 SQL 更新语句的语法错误
Posted
技术标签:
【中文标题】访问中的 SQL 更新语句的语法错误【英文标题】:Syntax error for SQL update statement in access 【发布时间】:2016-06-30 13:57:04 【问题描述】:我在 MS Access 中运行了一条 SQL UPDATE
语句,但收到一条错误消息
查询表达式中的语法错误(缺少运算符)
我在互联网上进行了搜索,但任何解决方案都适用于我的情况。
我的代码是:
Private Sub Command111_Click()
CurrentDb.Execute " UPDATE test3 " & _
"SET OrderStatus= 'Producing' " & _
"WHERE OrderID='" & Me!cboOrderID1 & "' ProductName='" & Me!ComboProduct1 & "'"
End Sub
请帮我看看哪里错了。
谢谢
【问题讨论】:
很确定在你的两个条件之间应该有一个AND
。
【参考方案1】:
我假设 OrderID 是 int,所以它不能在 ''
引号中,并且必须是语句中的数字
"WHERE OrderID=" & Me!cboOrderID1 & " AND/OR ProductName='" & Me!ComboProduct1 & "'"
你也忘了使用 AND 或 OR
【讨论】:
【参考方案2】:忘记你的 AND
Private Sub Command111_Click()
CurrentDb.Execute " UPDATE test3 " & _
"SET OrderStatus= 'Producing' " & _
"WHERE OrderID='" & Me!cboOrderID1 & "' AND ProductName='" & Me!ComboProduct1 & "'"
End Sub
【讨论】:
非常感谢贾斯汀的快速回复。代码现在看起来不错,但我收到了错误输入错误。我所做的是根据表单输入更新表中的 OrderStatus。表中,OrderID 为字符串,ProductName 为数字查找引用,OrderStatus 为字符串。在表单中,OrderID 是源自表的组合框,表单中的 ProductName 是源自与表中的 ProductName 相同的源的组合框。如果我执行 append ,这些数据看起来不错,没有任何输入错误。你能帮我分析一下错误的来源吗? 您尝试过 cboOrderID1.Text 和 ComboProduct1.Value 吗?你确定 OrderID 是一个字符串吗?对我来说,OrderID 是一个数值,ProductName 是字符串是有意义的。如果是这种情况,您希望您的 WHERE 为:Where OrderID='" & cboOrderID1.value & "' AND ProductName='" & ComboProduct1.Text & "'"
【参考方案3】:
谢谢你们!此代码适用于我的情况。
私有子命令111_Click()
CurrentDb.Execute " UPDATE test3 " & _
"SET OrderStatus= 'Producing' " & _
"WHERE OrderID='" & Me!cboOrderID1 & "' AND ProductName=" &CStr(Me!ComboProduct1) & ""
End Sub
在我的例子中,ProductName 来自一个组合框。
【讨论】:
以上是关于访问中的 SQL 更新语句的语法错误的主要内容,如果未能解决你的问题,请参考以下文章
SQLSTATE [42000]:语法错误或访问冲突:sql select 语句中的 1064