我需要在一天中定期自动运行一些Access宏,我这样做是通过安排批处理文件来打开相关的Access数据库并运行宏。
我遇到的问题是,如果我正在处理另一个Access数据库,因此已经打开了Access实例,批处理文件会运行,但只会打开包含应该运行和停止的宏的数据库。所以宏不会运行。
是否还有其他人遇到此问题或知道如何解决?
任务调度程序调用的批处理文件如下所示:
start /min "C:\Program Files\Microsoft Office 15\root\office15\MSACCESS.EXE" "Q:\TC\DNI_Updater\DNIUPDATER.accdb" /X DailyUpdate
答案 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.
如果此方法令人满意,您可以将脚本文件用作计划任务的"启动程序" 操作属性...