I would like to have a script to:
- Open an Access .accdb file
- Run a macro within the database
- Leave this open
I can very easily do the first two with the following VB script:
dim accessApp
set accessApp = createObject("Access.Application")
accessApp.visible = true
accessApp.OpenCurrentDataBase("C:\path.accdb")
accessApp.Run "myLinker"
But it immediately closes the Access database when the VBS execution finishes. I would like the instance to remain open independent of the script.
I am not forced to use VBScript for this but it definitely seems the easiest to actually invoke the macro to run.
If you want to leave the application open after the script completes you need to set the UserControl
property to true
.
dim accessApp
set accessApp = createObject("Access.Application")
accessApp.visible = true
accessApp.UserControl = true
accessApp.OpenCurrentDataBase("C:\path.accdb")
accessApp.Run "myLinker"
The Visible
property is technically unnecessary when the UserControl
property is true. It will automatically be set.
More information here: http://msdn.microsoft.com/en-us/library/office/ff836033.aspx
You could also just use a .bat
or .cmd
file and put this because MSACCESS has a command line switch for running a macro and unless that macro closes the database it will remain open for user control.
START "" /MAX "PATH\TO\MSACCESS.EXE" "C:\path.accdb" /x myLinker