1

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

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

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

一切都很好,除了数据库有密码,当 windows 调度程序执行语句时,它会打开数据库,数据库会提示输入密码。由于周围没有人输入密码,所以必须等到早上我进入并提供密码时才能执行。提供密码后,执行将完美无缺。

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

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

任何帮助表示赞赏。

提前致谢。

4

1 回答 1

2

有一个/pwd命令行开关(请参阅如何在 Microsoft Access 中使用命令行开关),但这仅适用于 ULS(用户级)安全密码。数据库密码 没有命令行开关选项。

您可以创建一个VBScript自动化访问会话。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
于 2013-05-23T18:02:26.207 回答