【发布时间】:2017-10-05 05:30:23
【问题描述】:
我确实在 Access VBA 中运行了相当复杂的代码。它将 Excel 或其他查询中的数据提取到 Access 前端数据库中的表中。然后我想运行DoCmd.RunSQL,它会根据这个临时数据更新后端数据库,但是这行代码的行为很奇怪。
- 当我运行代码时,它会更新 0 条记录。
- 如果我将
debug.print代码放入即时窗口并从那里运行,它会按预期更新记录。 - 当我将 SQL 字符串放入 Access 查询生成器时,它会再次更新记录。
- 如果我使用
SetWarnings = True,并且它显示我将要更新0 条记录的警告,我按否,VBA 将在DoCmd.RunSQL上抛出错误。我再次按Run,在同一行,现在它想按预期更新所有记录 - 我尝试在代码中运行两次查询。在这两个测试中,这似乎是一个解决方案,但现在它再次更新了 0 条记录。
我尝试使用运行设定时间的循环(类似于 Excel 的 Application.wait),怀疑表中的临时数据可能必须刷新数据库才能看到它,或者其他什么。
谁知道问题出在哪里?我必须以某种方式刷新表格吗?提前谢谢你。
UPDATE (SELECT [AUC],[Comment] FROM [AuC] IN 'C:\Users\test.accdb') AS Q1, [tempComments]
SET [Q1].[Comment] = [tempComments].[Comment]
WHERE [Q1].[AUC] = [tempComments].[AUC]
【问题讨论】:
-
尝试将表从该外部源链接到本地数据库。然后运行
UPDATE查询。