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方法就会强制更新屏幕显示,就会让我们动态看到程序运行状况了。