【问题标题】:MS Access: Pre-loading data from backendMS Access:从后端预加载数据
【发布时间】:2014-08-19 11:22:06
【问题描述】:

总结

我在 Access 前端数据库中有各种表单,其中包含多个下拉列表。这些从查询中填充,这些查询从后端 Access 数据库中的表中获取数据(通过链接表)。

在打开前端并单击第一个下拉组合框时,会等待几秒钟(通常伴随着“未响应”消息),而来自后端(在服务器上)的表数据正在等待已下载。

让我感到震惊的是,只要前端打开,并且在用户单击第一个组合框之前,就可以启动此加载。有没有办法预加载表格——最好没有“不响应”消息?

【问题讨论】:

  • 你压缩和修复了吗?
  • 是的,前端数据库刚刚被压缩修复。

标签: ms-access frontend backend preloading


【解决方案1】:

根据我的经验,最初填写下拉菜单需要更改整个表单组件结构。 IE。下拉菜单不是从查询中而是从 VBA 列表中读取它们的项目。列表可以在 Access 启动过程之后自动创建。

但我曾经成功地通过在启动时打开整个表单并使它们不可见来提高性能。然后,如果有人需要表格并选择例如一个菜单点,表单将变得可见。人们告诉我,他们接受在启动时的等待时间,因为他们知道并做一些其他工作或去喝杯咖啡。

要保持整个表单的预加载,您需要禁用表单关闭按钮(并可能添加一个替代按钮),因为这些按钮会破坏性能提升。此外,也许对话框应该能够以某种方式重新加载属性。但是,如果下拉列表中的属性没有太大变化,客户可能会偶尔重新启动应用程序。最后,如果 Access 崩溃(一个未捕获的 VBA 错误足以重置 Access 的运行时状态),将再次加载下一个要打开的对话框。你需要编写一些智能的GetForm()工厂方法来处理这个问题。

但作为一个优点,在启动时加载一个不可见的对话框很容易:-)

现在您至少有两个方案 - 我希望您能找到一个好方法。

【讨论】:

  • 表单本身加载所花费的时间是微不足道的,所以我认为我不会从预加载这些中获得任何好处。在启动时使用 VBA 从表数据中填充列表是个好主意,我可能会尝试。
  • 据我了解,加载表单时会加载所有下拉列表。这就是它应该节省时间的原因。
猜你喜欢
  • 2019-01-31
  • 2013-02-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多