2010-09-29 83 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