office交流網(wǎng)--QQ交流群號(hào)及微信交流群

Access培訓(xùn)群:792054000         Excel免費(fèi)交流群群:686050929          Outlook交流群:221378704    

Word交流群:218156588             PPT交流群:324131555

微信交流群(請(qǐng)用微信掃碼)

        

Access 2007以上版本偶爾會(huì)出現(xiàn)窗體閃爍晃動(dòng)(Flicker)的情況(有圖片更明顯)

2019-12-08 08:00:00
zstmtony
原創(chuàng)
4751


Access 2010-更改.picture有時(shí)會(huì)導(dǎo)致表格閃爍或晃動(dòng)(Flicker  / Flash)
我已經(jīng)將Access97數(shù)據(jù)庫(kù)升級(jí)到Access 2010,并且看到了許多閃爍的表格。從Access97升級(jí)到Access2003,我沒有看到這種現(xiàn)象。
這種現(xiàn)象一般出現(xiàn)在Access2007及以上版本,不知道是否主題 還是Ribbon的影響,而Access 2003及之前的版本則不會(huì)出現(xiàn)閃爍。表現(xiàn)正常。

甚至在一個(gè)普通窗體上放2個(gè)圖片,讓窗體足夠?qū)捄透撸ㄗ阋宰屗胶痛怪睗L動(dòng)條顯示出來(lái)),然后你上下滾動(dòng)和左右滾動(dòng),你會(huì)發(fā)現(xiàn)左右滾動(dòng)窗體時(shí),窗體上的圖片就會(huì)出現(xiàn)閃光。


尚未找到解決方案:

更改較小的.picture(form_timer)-導(dǎo)致整個(gè)表單閃爍

在制表符控件中更改.caption(form_current)-導(dǎo)致字幕和表格都出現(xiàn)可怕的閃爍

我試過了:

1. docmd.echo
2. me.painting=false
3.application.echo false
4.LockWindowUpdate Application.hWndAccesApp

多種解決方案 都沒有成功解決問題。(但有些能稍減少閃爍)

真正令人不安的是,Access97(或Access2003)沒有任何問題,盡管在該環(huán)境中的測(cè)試要少得多。有任何想法嗎?

我遇到了同樣的問題,似乎沒有人能夠確定2010年的情況。我和您一樣沮喪,并希望Microsoft的某個(gè)人能夠監(jiān)視此論壇并給予認(rèn)真的考慮。
我只是從2003年升級(jí)到2010年,即使對(duì)于具有許多選項(xiàng)卡和大量子表單的最復(fù)雜的表單,也絕不會(huì)閃爍。真可惜 我已經(jīng)完成了您所說的所有事情,甚至嘗試僅在需要時(shí)才加載表單,但沒有什么能夠真正消除閃爍。我甚至看到色帶閃爍。我很高興看到其他用戶遇到此問題,因?yàn)槲覜]有看到太多的帖子,但是這里有一些。也許微軟會(huì)看到一個(gè)真正的問題并進(jìn)行改進(jìn)



我知道這個(gè)問題已經(jīng)在多個(gè)帶有echo等的線程中消失了,但是...

隨著Access 2010的閃爍確實(shí)增加了(由于導(dǎo)航表單選項(xiàng)和本機(jī)Web控件都需要使用該版本)

更新后的重新查詢組合會(huì)導(dǎo)致全部閃爍或只是調(diào)整表單大小,我可以看到訪問重新格式化/計(jì)算的速度非常慢...或在連續(xù)的子表單中向下滾動(dòng)...

是的,我同時(shí)擁有子表單和不同的綁定控件-我沒有任何子表單未綁定的標(biāo)簽等。

它使我發(fā)瘋:-) ..

我可以使用調(diào)整大小/呈現(xiàn)等事件來(lái)停止訪問以暴露其純正的性能嗎?

謝謝 :-)

相關(guān)聯(lián)內(nèi)容:

將一張圖片設(shè)為窗體背景后(或直接放一張圖片在窗體上),再在上面放置控件并將其背景設(shè)為透明,這時(shí)如果代碼動(dòng)態(tài)改變控件的外觀效果,會(huì)有極為明顯的閃爍


You can use

Declare Function LockWindowUpdate Lib "user32" Alias "LockWindowUpdate" (ByVal hwndLock As Long) As Long

to lock any update of a given hWmd. So, basiclly, add the declare in the declaration section of the form, and at the start of the OnCurrent procedure, have something like

LockWindowUpdate Application.hWndAccesApp



and, on exiting this procedure, have:

LockWindowUpdate 0

to unlock any update the system may generate to your locked window. Note that if an error occurs, the window will ***appear*** to be frozen. So, add the appropriate error handling to unfreeze it, if an error occur; ie,DON'T FORGET to add also, in your error handling:

LockWindowUpdate 0



分享
文章分類
聯(lián)系我們
聯(lián)系人: 王先生
Email: 18449932@qq.com
QQ: 18449932
微博: officecn01
移動(dòng)訪問