ACC: Conditionally Run AutoExec Macro in Automation DatabaseID: Q160951
|
When you use Automation to open a database in another instance of Microsoft
Access, if the database you are opening contains an AutoExec macro, the macro runs. If the macro contains a MsgBox action or opens a modal dialog box, code execution is suspended until you respond by closing the message box or the dialog box.
This article demonstrates a technique to conditionally turn off any or all
AutoExec macro actions when you open a database with Automation.
This article assumes that you are familiar with Visual Basic for
Applications and with creating Microsoft Access applications using the
programming tools provided with Microsoft Access. For more information
about Visual Basic for Applications, please refer to your version of the
"Building Applications with Microsoft Access" manual.
If there are actions in the AutoExec macro that you do not want to execute when you open the database with Automation, you can use the UserControl property in the Condition column of a macro action. The UserControl property lets you determine whether Microsoft Access is started by a user or through Automation.
Condition Action
---------------------------------------
Application.UserControl = True MsgBox
AutoExec Actions
------------------------------
MsgBox
Message: Opening Northwind
Function TestAuto()
Static AccObj as Object, x as String
x = _
"C:\Program Files\Microsoft Office\" _
& "Office\Samples\Northwind.mdb"
Set AccObj = GetObject(x)
End Function
?TestAuto()Note that the Northwind database opens in a separate instance of Microsoft Access, but does not display the message box.
Function TestAuto2()
Static AccObj as Object, x as String
x = _
"C:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb"
Set AccObj = GetObject(x)
MsgBox "All Done!"
End Function
?TestAuto2()Note that the Northwind database opens in a separate instance of Microsoft Access, but the "All Done!" message does not display until you switch to the Northwind instance of Microsoft Access, click the OK button in the message box, and then switch back to the Db1.mdb instance of Microsoft Access.
For more information about using Microsoft Access as an Automation Server, please see the following article in the Microsoft Knowledge Base:
Q147816 ACC: Using Microsoft Access as an Automation ServerFor more information about the UserControl property, search the Help Index for "UserControl property," or ask the Microsoft Access 97 Office Assistant.
Additional query words: Blinking Frozen Freeze Stop Responding Hung OLE
Keywords : kbinterop kbdta AccCon IntpOlea KbVBA
Version : WINDOWS:7.0,97
Platform : WINDOWS
Issue type : kbhowto
Last Reviewed: August 2, 1999