0
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

基本上没有错误信息,只是什么都没有发生?

任何人都可以帮忙吗?

4

2 回答 2

3

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

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

如果它不起作用,希望错误消息能帮助您理解原因,以便您修复它。

如果它工作正常,请使用.ExecuteDAO.Database 对象的方法从 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
于 2012-10-08T15:33:45.950 回答
0

有帮助的事情:

  • [Stock Conversion]set和中删除where
  • 删除 Where 上不必要的括号
  • 删除分号
  • 再检查一遍。
  • 如果它不起作用,请删除where并再次尝试检查您的 were 子句是否有问题
  • 向数据库添加 SQL 跟踪以查看查询是否真的被提交
  • 在此处粘贴完整的 SQL 语句,以便我们提供更多帮助
于 2012-10-08T14:26:58.883 回答