Vba 打开Access数据库、运行宏和持久化Access实例的脚本

Vba 打开Access数据库、运行宏和持久化Access实例的脚本,vba,ms-access,vbscript,Vba,Ms Access,Vbscript,我想要一个脚本来: 打开Access.accdb文件 在数据库中运行宏 让这个开着 使用以下VB脚本,我可以非常轻松地完成前两项: dim accessApp set accessApp = createObject("Access.Application") accessApp.visible = true accessApp.OpenCurrentDataBase("C:\path.accdb") accessApp.Run "myLinker" 但当VBS执行完成时,它会立即关闭Acce

我想要一个脚本来:

  • 打开Access.accdb文件
  • 在数据库中运行宏
  • 让这个开着
  • 使用以下VB脚本,我可以非常轻松地完成前两项:

    dim accessApp
    set accessApp = createObject("Access.Application")
    accessApp.visible = true
    accessApp.OpenCurrentDataBase("C:\path.accdb")
    accessApp.Run "myLinker"
    
    但当VBS执行完成时,它会立即关闭Access数据库。我希望实例保持独立于脚本的打开状态


    我没有被迫为此使用VBScript,但它确实似乎是实际调用宏以运行的最简单方法。

    如果要在脚本完成后保持应用程序打开,则需要将
    UserControl
    属性设置为
    true

    dim accessApp
    set accessApp = createObject("Access.Application")
    accessApp.visible = true
    
    accessApp.UserControl = true
    
    accessApp.OpenCurrentDataBase("C:\path.accdb")
    accessApp.Run "myLinker"
    
    UserControl
    属性为true时,
    Visible
    属性在技术上是不必要的。它将自动设置


    此处的更多信息:

    您也可以使用
    .bat
    .cmd
    文件并将其放入,因为MSACCESS有一个用于运行宏的命令行开关,除非该宏关闭数据库,否则它将保持打开状态以供用户控制


    START”“/MAX”PATH\TO\MSACCESS.EXE”“C:\PATH.accdb”/x myLinker

    太好了,谢谢。“应用程序方法”页面上的描述非常模糊,在其含义方面没有用处-
    您可以使用UserControl属性来确定当前Microsoft Access应用程序是由用户启动的,还是由另一个具有自动化功能的应用程序(以前称为OLE自动化)启动的。读/写布尔值
    从MSDN中猜到这一点应该不会让我感到惊讶。。。