【问题标题】:Access 2007 Conditional Formating on Datasheet View takes several seconds to load数据表视图上的 Access 2007 条件格式需要几秒钟才能加载
【发布时间】:2018-02-26 18:19:09
【问题描述】:

这是我在这里的第二个问题,所以我希望这次我问对了。

背景:我正在设计一个 Access 数据库来进行一些计算。我得到了那部分。我的问题是视觉设计。我讨厌表格。我是一个 Excel 人,我喜欢正常处理原始数据,所以我很讨厌设计表单。这个问题是 100% 提高条件格式规则的性能。

我在表单中应用了一个简单的条件规则(样式是数据表视图),如果字段的值为 True,那么它会为记录的所有字段着色。该规则完美无缺。它完全符合我的要求。

问题:当列表包含多条记录时,Access 需要一些时间根据我的条件为所有行着色 形成规则。我们说的是 5 甚至 10 秒。

一些图片:

但是记录更多...

我必须等待大约 5-10 秒,直到所有这些都着色,如果我向下滚动以查看更多列表,其中一些没有着色,我必须再次等待几秒钟。

问题: ¿有什么方法可以延迟加载,直到条件格式应用于所有记录? ¿ 或者一种方法 更快?

我尝试过的直到知道:

我尝试过使用Application.EchoRepaint。我不知道还有什么可以尝试的。在表单的不同事件中尝试了这两种选项,但没有任何帮助。

我不发布任何代码或数据,因为实际上并不是关于糟糕的编码或数据管理。只是如果有人知道可以加速此过程或延迟此表单的加载,直到应用所有条件格式。

P.S: 用户查看此表单时,后台没有运行宏,因此不存在计算机性能或其他宏干扰的问题。此外,此数据库必须在 Access 2007 中完成,没有其他选项可供最终用户使用。

感谢任何可以提供解决方案的人。我希望这次我问的是正确的方法。

回答评论:不,所有数据都是来自同一数据库中的表的查询。查询中没有自定义函数。不是一个单一的计算,它只需要存储在表中的数据。不在本地驱动器中。我们现在谈论的是 635 条记录,但将来会有更多记录。是的,我已经激活了“Compact & Repair”。数据库大小实际上约为 5 MB。

【问题讨论】:

  • 是否引用了外部文件或数据源?自定义函数?这是存储在本地 C: 还是网络上?我们在谈论多少条记录?您是否“压缩并修复”并定期重启?
  • 不,所有数据都是来自同一数据库内的表的查询。查询中没有自定义函数。不是一个单一的计算,它只需要存储在表中的数据。不在本地驱动器中。我们现在谈论的是 635 条记录,但将来会有更多记录。是的,我已经激活了“Compact & Repair”。数据库大小实际上约为 5 MB。
  • 多少个字段? 5mb 对于 600 条记录来说似乎很多
  • 因为我有很多表和查询,但这个表单只有 1 个查询和 13 个字段。
  • 除了 FC 可能会非常慢,也许您使用的表达方式是“不太理想”?

标签: ms-access ms-access-2007


【解决方案1】:

您可以强制 Access 处理所有记录:

Do Until Me.Recordset.EOF
   Me.Recordset.MoveNext
Loop
Me.Recordset.MoveFirst

一个很大的区别是,通常情况下,应用条件格式不会锁定应用程序,但这会锁定应用程序。

【讨论】:

  • 这完美!我最后将您的解决方案与Me.Painting=FalseMe.Painting=True 结合起来,性能提高得非常好。我在Me.Painting 之前尝试过,但我没有将它与您的解决方案结合起来。这太棒了。谢谢!!!!
  • 很高兴它成功了。我没有包含Me.Painting 代码,因为我不确定这是否会影响条件格式。当然,您可以将处理限制为前 30 条左右的记录(通过使用计数器和Do Until Me.Recordset.EOF Or i=30),仅强制处理第一个屏幕,并限制应用程序被锁定的时间。
  • 我添加了它,因为没有它,屏幕会“闪烁”,而您可以看到它如何检查所有记录。使用Me.Painting=False 然后用户在所有过程完成之前什么都看不到。所以我对这个解决方案非常满意。我不知道使用 VBA 在记录之间移动会激活 CF,但我今天学到了一些新东西。百万谢谢!。
  • @ErikvonAsmuth 如果我不在 VBA 中使用格式化,而是直接在 gui 中使用 - 那我该把 Do Loop 放在哪里?
  • @EmilOlsen 你没有。如果您不使用表单,则您几乎无法控制发生的任何事情。简单的解决方案是:使用表单。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-25
  • 1970-01-01
  • 2019-02-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多