enderland
enderland

Reputation: 14135

Script to open Access database, run macro, and persist Access instance

I would like to have a script to:

  1. Open an Access .accdb file
  2. Run a macro within the database
  3. 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.

Upvotes: 15

Views: 64719

Answers (2)

engineersmnky
engineersmnky

Reputation: 29318

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

Upvotes: 2

Bryan Weaver
Bryan Weaver

Reputation: 4473

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

Upvotes: 23

Related Questions