我有一个通过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调度程序,并且可以在午夜时打开数据库,此时没有人在这里提供密码。 。 。 。 。 。
感谢任何帮助。
提前致谢。
答案 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