数据表视图上的 Access 2007 条件格式需要几秒钟才能加载

Access 2007 Conditional Formating on Datasheet View takes several seconds to load

这是我的第二个问题,所以我希望这次我问的是正确的方式。

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

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

PROBLEM: When the list contains several records, it takes some time for Access to colour all rows according to my Conditional Formating rule. We are talking about 5 or even 10 seconds.

部分图片:

但是记录更多...

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

QUESTION: ¿Is there any way I can delay the load until the Conditional Formating is applied to all records? ¿Or a way to do it faster?

我尝试过后才知道:

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

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

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

感谢任何可以提供解决方案的人。希望这次问对了方法

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

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

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

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