谁能在这里发现SQL问题?尝试更新ms-access中的字段

时间:2012-10-08 13:58:07

标签: sql database vba ms-access

Dim sqlUpdate As String

sqlUpdate = "UPDATE [Stock Conversion] SET [Stock Conversion].Status = 'PRINTED' " & _
"WHERE ((([Stock Conversion].Status) = 'NEW'));"

' Turn off warning
DoCmd.SetWarnings False

'Run SQL
DoCmd.RunSQL (sqlUpdate)

'Turn on warning
DoCmd.SetWarnings True

基本上没有错误信息,它根本没有任何反应?

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

将此语句粘贴到新的Access查询的SQL视图中并对其进行测试。

UPDATE [Stock Conversion]
SET Status = 'PRINTED'
WHERE Status = 'NEW';

如果它不起作用,希望错误消息将帮助您了解原因,以便您可以解决它。

如果它可以正常工作,请使用DAO.Database对象的.Execute方法从VBA执行相同的语句。由于您不会使用DoCmd.RunSQL,因此无法关闭SetWarnings。这一点非常重要,因为当您关闭SetWarnings时会取消信息。

Dim db As DAO.Database
Dim sqlUpdate As String

sqlUpdate = "UPDATE [Stock Conversion]" & vbCrLf & _
    "SET Status = 'PRINTED'" & vbCrLf & _
    "WHERE Status = 'NEW';"
Debug.Print sqlUpdate
DoCmd.SetWarnings True ' in case it had been left off somehow '
Set db = CurrentDb
db.Execute sqlUpdate, dbFailOnError
Set db = Nothing

答案 1 :(得分:0)

有些人会帮忙:

  • [Stock Conversion]set
  • 中删除where
  • 删除Where
  • 上不必要的括号
  • 删除分号
  • 再次检查。
  • 如果它不起作用,请删除where,然后再次尝试检查是否存在 是你的子句
  • 的问题
  • 将SQL跟踪添加到数据库以查看查询是否确实存在 submited
  • 在此处粘贴完整的SQL语句,以便我们提供更多帮助