【问题标题】:Syntax error for SQL update statement in access访问中的 SQL 更新语句的语法错误
【发布时间】: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

标签: sql ms-access syntax


【解决方案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 来自一个组合框。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-11
      相关资源
      最近更新 更多