更新查询上的DoCmd.RunSQL - 首先运行0更新,仅更新第二次运行

时间:2017-10-03 17:33:35

标签: sql vba ms-access

我在Access VBA中运行相当复杂的代码。它将数据从Excel或其他查询中提取到Access前端数据库中的表中。然后我想运行基于这个临时数据更新后端数据库的await,但这行代码很奇怪。

  1. 当我运行代码时,它会更新0条记录。
  2. 如果我DoCmd.RunSQL代码进入即时窗口,并从那里运行它,它会按预期更新记录。
  3. 当我将SQL字符串带入Access查询构建器时,它再次更新记录。
  4. 如果我使用debug.print,并且它显示警告我即将更新0条记录,则按否,VBA会在SetWarnings = True上抛出错误。我再次按DoCmd.RunSQL,并在同一行,现在它想要按预期更新所有记录
  5. 我试图在代码中运行两次查询。在两个测试中,它几乎似乎是一个解决方案,但现在再次更新0条记录。
  6. 我尝试使用运行设置时间的循环(类似Excel的Run),怀疑表中的临时数据可能需要刷新数据库以查看它,或者其他东西。

    任何人都知道问题出在哪里?我必须以某种方式刷新表格吗?提前谢谢。

    Application.wait

1 个答案:

答案 0 :(得分:0)

这应该有效

With Access.DoCmd
    .RunSQL "[AuC] IN 'C:\Users\test.accdb' SET [AuC].[Comment] = [tempComments].[Comment] WHERE [AuC].[AUC] = [tempComments].[AUC]"
End With