Ms access 提高子窗体的速度

Ms access 提高子窗体的速度,ms-access,Ms Access,随着时间的推移,我有一张越来越慢的表格。起初,在记录之间导航根本不需要时间。过了一会儿,花了一秒钟。然后过了一会儿,切换记录花了两秒钟。现在我在三秒钟内切换记录 以下是详细信息: 用户会收到一个表单的提示,该表单有一些选项可供选择。根据这些选项,主窗体将弹出,仅显示相关记录。主窗体链接到由用户选择生成的查询。主窗体上的子窗体直接链接到另一个表(QuoteRunResults)。该表现在包含354000条记录慢的表单是子表单 以下是可以使用的示例查询: SELECT * FROM QUOTERu

随着时间的推移,我有一张越来越慢的表格。起初,在记录之间导航根本不需要时间。过了一会儿,花了一秒钟。然后过了一会儿,切换记录花了两秒钟。现在我在三秒钟内切换记录

以下是详细信息:

用户会收到一个表单的提示,该表单有一些选项可供选择。根据这些选项,主窗体将弹出,仅显示相关记录。主窗体链接到由用户选择生成的查询。主窗体上的子窗体直接链接到另一个表(QuoteRunResults)。该表现在包含354000条记录慢的表单是子表单

以下是可以使用的示例查询:

SELECT * 
FROM QUOTERun
WHERE QuoteNumber = {UserSelectedQN}
ORDER BY RunID DESC

有什么方法可以加快子窗体的速度吗?

我以前遇到过这种情况。为了完全消除滞后,我做了如下工作:

  • 使用查询生成两个表单所需的两个数据集
  • 以编程方式为每个数据集创建一个临时表,并从 查询的结果
  • 将表单链接到临时表
  • 允许用户对数据执行任何需要执行的操作
  • 表单关闭后,以编程方式从 临时表
  • 删除临时表

这实际上让表单飞起来了。我不再有滞后的问题了。当我点击按钮移动到下一个记录时,它立即发生了。在我的情况下,在当前的事件中,我有很多事情要做,这使我的状态变慢了。一旦我应用了上面的方法,它就加快了速度。

你已经压缩并修复了后端数据库、前端数据库、反编译了前端并确保有正确的索引,是吗?是的,我已经完成了所有这些。这是每周进行的定期维护,以保持一切正常运行。子表单是否可以处理两个多数据?表单是否会在每次更改记录时返回到具有354000条记录的表?如果必须获得新记录,则返回到表,但如果表单可以利用索引,则速度应该相当快。将子表单链接到主表单的子字段和主字段都会被索引。主窗体运行良好。子窗体没有。当您将子窗体作为窗体打开时会发生什么?或者打开子窗体所基于的查询作为查询?您真的建议将300K记录复制到用户桌面上吗?如果所需的选择少于此值,那么问题可以通过使用定义良好的索引的查询来解决。不,我建议运行查询以获取用户需要处理的记录。然后将这些记录复制到一个临时表中进行处理。索引对我的情况有帮助,但没有我的建议那么多。我确实尝试了你的建议,它确实大大提高了速度。我真的很惊讶。我必须弄清楚如何在处理记录时锁定记录,并在表单关闭后进行更新。我确实弄明白了,现在一切都很顺利。