[AccessD] Automating an app without startup stuff running.

jwcolby jwcolby at colbyconsulting.com
Mon Jan 2 16:30:07 CST 2012



I am trying to automate opening an access application, harvesting the references to place in a table 
for later use.  Using OpenCurrentApplication it all works well when I open libraries but when I try 
and open the application then the autoexec or application form tries to open.  Which means passing 
in an argument to tell the app not to do so.  But OpenCurrentApplication cannot pass in command line 
options because it doesn't use the command line to open the application.

Application has a SetOption method which allows you to set the CommandLine property, the same 
property that the application places any actual command line options into as it opens.  thus:

Function OpenApp(strFEToOpen As String, Optional blnVisible As Boolean = True, Optional 
strCmdLineArgs As String = "") As Access.Application
Dim appAccess As Access.Application
Dim strCmdLine As String
     ' Create new instance of Microsoft Access.
     Set appAccess = CreateObject("Access.Application")
     If Len(strCmdLineArgs) Then
         appAccess.SetOption "Command-line arguments", strCmdLineArgs
     End If
     appAccess.Visible = blnVisible
     appAccess.OpenCurrentDatabase strFEToOpen
     Set OpenApp = appAccess
End Function

I then use an method to check that:

Function InitApp()
' Check value returned by Command function.
     If Command <> "" Then

     Else
         DoCmd.RunCommand acCmdAppMaximize
         DoCmd.OpenForm "switchboard"
     End If
End Function

And finally I call that method from the Autoexec macro.

So when I open the application just by a shortcut, it does not pass in a command line argument, 
autoexec calls InitApp, and since there is nothing in Command my switchboard opens.

When I open it via automation, I call OpenApp passing anything in to the command line arg and the 
same sequence happens, autoexec calls initApp except now Co,,amd returns the argument I put in it 
and it does not open my switchboard.

I can now automate the application without the normal startup stuff running.

-- 
John W. Colby
Colby Consulting

Reality is what refuses to go away
when you do not believe in it



More information about the AccessD mailing list