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

59,892

Solution 1

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

Solution 2

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

Share:
59,892

Related videos on Youtube

enderland
Author by

enderland

Farewell Stack Exchange. o7 to everyone I've shared labors with over these many years. Take care.

Updated on May 25, 2020

Comments

  • enderland
    enderland almost 4 years

    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.

Related