2010-09-29 79 views
0

在VBA代码中使用lockWindowUpdate API可以避免在更新屏幕内容时屏幕闪烁。它还极大地提高了计算延迟,因为在底层记录集上进行每次计算\更新后,计算机不必刷新屏幕。ms-access 2007 runtime and lockWindowUpdate

不幸的是,我无法使用Access 2007运行时正常工作!在某些屏幕上,Access 2007用户将比Access 2003运行时用户更新数据30次以上!

通过google搜索,我发现类似的问题related to powerpoint 2007也有争议,但是没有任何或者没有明确的解决方案出现在msAccess中。我将非常感谢任何帮助。

+0

为什么使用API​​来获取VBA提供的内容? DoCmd.Echo False,Me.Painting = False和Application.Echo False全部控制屏幕绘制。关键问题是选择正确的上下文,在正确的地方调用它,并提供错误处理,以便在发生错误时重新启用它。 – 2010-09-30 02:38:44

+1

感谢您的帮助。解决方案可行但是为什么我们以前不使用它? – 2010-09-30 07:02:39

回答

1

我无法访问2007年进行测试,但会使用

Application.Echo False ,”Updating” 

为你工作?只需记住在代码完成并在任何错误捕获后重新打开回显

Application.Echo True,”” 
+0

到目前为止,它的工作原理!我只需要在应用程序中更新freezeForm和unfreezeForm函数。现在的问题是:在考虑使用Windows API之前,我们怎么没有找到这个解决方案? – 2010-09-30 07:01:47

+0

啊不要担心这些事情发生,我花了很多年制作我自己的汽车前端更新小部件,只发现那里已经有一个!我相信我将来会继续做出其他这样的“错误”! – 2010-09-30 07:06:55

+0

另外我有大量的生产代码与自定义功能,做10年前开始提供Access的东西。以及Access在编写时做的事情。 :( – 2010-10-01 03:28:03