执行系统级的操作。虽然在宏中执行 RunApp 操作可以从一个应用程序运行另一个基于 Microsoft Windows 或 Microsoft MS-DOS 的应用程序,但是在 Access 以外使用宏具有很大的局限性。而使用 Visual Basic 则可以查看系统中是否存在某个文件,或者通过“自动化”或动态数据交换 (DDE) 与另外一个基于 Windows 的应用程序(如 Microsoft Excel)进行通讯,还可以调用 Windows 动态链接库 (DLL) 中的函数。
Public Sub testVBA()
DoCmd.SetWarnings False
Dim i As Integer
Debug.Print "VBA Start @ "; Now
For i = 1 To 10000
vbaInsert
Next i
Debug.Print "VBA End @ "; Now
DoCmd.SetWarnings True
End Sub
Public Sub testMacro()
DoCmd.SetWarnings False
Dim i As Integer
Debug.Print "Macro Start @ "; Now
For i = 1 To 10000
DoCmd.RunMacro "macro1"
Next i
Debug.Print "Macro End @ "; Now
DoCmd.SetWarnings True
End Sub
Public Sub vbaInsert()
'CurrentProject.Connection.Execute "insert into tVBA(col) values ('A0')"
DoCmd.RunSQL "insert into tVBA(col) values ('A0')"
End Sub
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