Access資料庫的使用大概有兩大部分,一是資料的計算與處理,像資料表、查詢這些都是來完成資料處理工作的,他們會按照我們的需要完成資料的計算和處理,形成資料資訊以供參考;二是使用者介面(UI)的製作,這一部分雖然不是核心,但也非常重要,。因為對於一般用戶來講,不會懂得怎樣去建立查詢等等這些工作,他們所需要的只是點點按鈕就能得到必要的信息,所以,我們需要製作大量的窗體來引導用戶進行數據庫的操作,以獲得他們所需的資訊。所以對於一個好的資料庫應用系統來講,這兩大部分缺一不可。
在建立窗體,引導使用者使用的過程中,經常會遇到這樣的問題:有時使用者按下某個命令按鈕,當程式開始執行那個按鈕所關聯的程式時,由於涉及到大量的計算工作,所以電腦運作會變慢,在Access中會表現為螢幕沒有任何反應,時間稍長,就會讓人感覺是不是當機了?所以,在這種情況下,如果有提示框來告訴用戶電腦此時在做什麼會比較好,另外這樣也可以感覺時間短些,因為沒有任何變化的等待會讓人感覺更加漫長!
要完成這個即時訊息顯示窗口,我們首先想到的就是在程式的某一部分加上一段程式碼,這段程式碼打開一個新的窗口,窗口中會有相關文字,如「程式正在運行,請稍等… 「等等,程式碼也很簡單,在Access中就是
……
DoCmd.OpenForm "wait"
Forms!Wait!lblwait.Caption = "程式正在運行,請稍等…"
……
其中,wait是窗體(Form)的名字,lblwait是窗體中的一個標籤(Label)控制項的名稱,當程式執行到省略號這裡時,會開啟wait窗口,然後把標籤控制項的名稱改為「程式正在運行,請稍等…」。
但當你真正運行這段程式碼時,會發現效果並不是你想像的那樣,wait窗口確實出來了,但是上面只是一片白色區域,沒有任何文字,最初你可能覺得是自己的電腦運行慢,顯示不出來,但是即使你換到最快的電腦上來運行,結果還會是這樣,豈不鬱悶? !
這時候,就輪到Repaint方法大顯身手了,將上面的程式碼稍作修改,如下面這樣:
……
DoCmd.OpenForm "wait"
Forms!Wait!lblwait.Caption = "程式正在運行,請稍等…"
Forms!Wait.Repaint
……
再運行一下,就可以看到視窗正常顯示出來提示了。
之後,你可以在需要的地方都加上這段程式碼,把其中的文字換換,就可以在程式的運行過程當中即時提示使用者程式在做什麼了!
道理其實也很簡單,就是在程式運行過程當中,不會實時的更新螢幕顯示,這樣會加快程式運行的速度,所以在設計到大量計算時,程式就不會有任何顯示更新,像死機了一樣,但是加入了Repaint方法就會強制更新螢幕顯示,就會讓我們動態看到程式運作狀況了。