从.bat运行宏并打开另一个Access数据库

时间:2016-02-15 16:50:04

标签: vba batch-file ms-access scheduled-tasks

我需要在一天中定期自动运行一些Access宏,我这样做是通过安排批处理文件来打开相关的Access数据库并运行宏。

我遇到的问题是,如果我正在处理另一个Access数据库,因此已经打开了Access实例,批处理文件会运行,但只会打开包含应该运行和停止的宏的数据库。所以宏不会运行。

是否还有其他人遇到此问题或知道如何解决?

任务调度程序调用的批处理文件如下所示:

start /min "C:\Program Files\Microsoft Office 15\root\office15\MSACCESS.EXE" "Q:\TC\DNI_Updater\DNIUPDATER.accdb" /X DailyUpdate

1 个答案:

答案 0 :(得分:2)

在使用DailyUpdate打开该会话时,我找不到让start /min宏在第二个Access会话中运行的方法。

我仍然不确定它是否可行,但我放弃了并转而使用 VBScript 。通过这种方法,可以轻松启动第二个Access会话最小化并运行宏...

Option Explicit
Dim AccessExePath, DbPath, CmdLine, objShell
DbPath = "C:\Users\hans\Documents\test_hfu.accdb"
AccessExePath = "C:\Program Files (x86)\Microsoft Office\Office14\MSAccess.exe"
CmdLine = """" & AccessExePath & """ """ & DbPath & """" & " /X DailyUpdate"
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run CmdLine, 7 ' Minimize. The active window remains active.

如果此方法令人满意,您可以将脚本文件用作计划任务的"启动程序" 操作属性...

scheduled task Action property