调度MS Access DB的执行

时间:2013-05-23 17:41:17

标签: ms-access macros scheduling execution

我有一个通过Windows NT调度程序执行的MS Access 2007数据库。基本上,我在Windows Scheduler中创建了这个条目,每晚午夜运行。

我:\ Case_Management_Systems \ TRIAL_UNIT \ Docket_Sheets_Tracking.accdb / x USER_LOG_REPORT_DELETE

上述语句打开数据库并执行/ x宏以打印报告并删除一些记录。

一切都很好,除了DB有密码,当Windows调度程序执行该语句时,它会打开数据库,数据库会提示输入密码。由于没有人输入密码,执行必须等到早上我进入并提供密码。一旦提供了密码,执行就完美无瑕。

我相信在MS Access 2007之前有一个/ passw参数,其中密码可以作为执行条目的一部分提供,就像上面的宏一样,但在MS Acess 2007中,不允许/ passw参数。

我想知道是否有人知道密码的方法,以便我可以将它集成到Windows调度程序,并且可以在午夜时打开数据库,此时没有人在这里提供密码。 。 。 。 。 。

感谢任何帮助。

提前致谢。

1 个答案:

答案 0 :(得分:2)

有一个/pwd命令行开关(请参阅How to use command-line switches in Microsoft Access),但这仅适用于ULS(用户级)安全密码。 数据库密码没有命令行开关选项。

您可以创建VBScript来自动化Access会话。 Application.OpenCurrentDatabase Method允许您在该会话中打开db文件时提供数据库密码。您可以使用DoCmd.RunMacro Method来运行宏。

最后,在任务计划程序中安排VBScript文件。

这是一个简单的VBScript示例,可帮助您入门。更改常量的值以符合您的情况。

Option Explicit
Const cstrDb = "C:\path\YourDbFile.mdb"
Const cstrPwd = "YourPassword"
Const cstrMacro = "YourMacroName"
Dim oAccess

Set oAccess= CreateObject("Access.Application")
oAccess.Visible = True
oAccess.OpenCurrentDatabase cstrDb, False, cstrPwd
oAccess.DoCmd.RunMacro cstrMacro
oAccess.Quit