【问题标题】:Access 2007 VBA Listbox lag after changing DB data or Requery更改数据库数据或重新查询后访问 2007 VBA 列表框滞后
【发布时间】:2011-09-07 20:17:03
【问题描述】:

我最近遇到了一个非常烦人的问题。

我的列表框没有立即更新。例如,在我的主窗体“A”上有一个带有 sql 语句的列表框(简单...返回 5-20 行)。我在下面有一个编辑按钮,单击该按钮会打开一个新表单以更改数据。该表单提交一个更新查询,然后调用一个全局函数,该函数需要所有相关的列表框(表单 A 上的列表框)。唯一的问题是列表框没有改变,似乎挂起/滞后。如果我选择列表框并连续按 f5,几秒钟后它将正确随机刷新。

有人知道问题出在哪里吗?

我已经对此进行了两天的故障排除,并且知道这不是网络问题,因为它也发生在本地,使用记录集并循环它以手动设置列表框值工作得很快,但由于某种原因,我的应用程序中的所有列表框都是这样做。

这是我意外更改的设置,或者如果您定义了许多关系,是否会发生这种情况(我最近添加了另一个表)?

编辑: 忘了说,数据库在共享驱动器上,只有 2MB,最近才开始这样做。

【问题讨论】:

  • 仅返回 5-20 行的查询,可能需要 long 时间才能返回,具体取决于查询的数据。执行速度与返回的行数不成正比。你有没有跟着调试?你能看到挂断吗?
  • 我已经在调试中,代码运行良好,没有返回错误,列表框直到几秒钟后才更新

标签: ms-access listbox vba


【解决方案1】:

我最终发现了问题,希望这对将来的人有所帮助。

这与使用有关:

CurrentDB.Execute

此方法在后台同步运行,因此列表框在 sql UPDATE/INSERT/DELETE 完成之前被刷新。

为了解决这个问题,我改为使用:

Docmd.RunSQL

这已经解决了问题,但是我注意到这个方法只适用于 Microsoft Access 数据库。

【讨论】:

    猜你喜欢
    • 2021-08-06
    • 2021-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-06
    • 1970-01-01
    • 2021-12-09
    • 1970-01-01
    相关资源
    最近更新 更多