|
4#
楼主 |
发表于 2009-2-16 20:05:05
|
只看该作者
还有网友认为 带有宏的FORM比有VBA的FORM打开速度快。 同样也做了如下测试.
实验步骤:
1。新建一个空的ACCESS 2003 t1.mdb
2。创建宏 macro1, 动作为 close,
3。创建窗体 frmMacro, 空窗体,什么都不加,然后到FORM的load事件中设置为宏 macro1
4。创建窗体 frmVBA ,在FORM的load事件添加VBA代码
Private Sub Form_Load()
DoCmd.Close
End
5。创建模块module1,代码如下。以acDialog模式打开个窗体以避免ACCESS并发,窗体在LOAD之后会自动关闭,然后打开下一个
Option Compare Database
Option Explicit
Public Sub testVBA()
Dim i As Integer
Debug.Print "Start VBA @ "; Now
For i = 1 To 10000
DoCmd.OpenForm "frmVBA", acNormal, , , , acDialog
DoEvents
Next i
Debug.Print "End VBA @ "; Now
End Sub
Public Sub testMacro()
Dim i As Integer
Debug.Print "Start MACRO @ "; Now
For i = 1 To 10000
DoCmd.OpenForm "frmMacro", acNormal, , , , acDialog
DoEvents
Next i
Debug.Print "End MACRO @ "; Now
End
6。分别运行 testVBA 和 testMacro 结果如下:
Start VBA @ 2/16/2009 4:20:27 PM
End VBA @ 2/16/2009 4:21:07 PM
Start MACRO @ 2/16/2009 4:21:18 PM
End MACRO @ 2/16/2009 4:21:58 PM
////////////////////////////////////////////
从测试结果看,速度上差不多。
估计为什么仅有宏的FORM比有VBA代码的FORM速度快的原因是:
1。仅有宏的FORM相应来对比较功能简单,这样与用有VBA的FORM在功能上没有可比性。
2。在FORM中的事件上分配了宏,这样宏的实际代码或内容仍在宏中,在FORM中仅保留了一个指向这些宏的指针。而VBA代码则是与FORM存为一体。在加载的时候,需要加载的字节数不同。 |
|