使用VBScript打开受密码保护的Access数据库

时间:2013-04-18 13:19:08

标签: vbscript passwords ms-access-2007 ms-office

我有一个密码保护的访问数据库,需要在一夜之间更新。我们编写了一个简单的Java应用程序,它接受一些参数(即宏,路径,文件类型等),然后通过命令行执行VBScript。所以我有办法“存储”用户名和密码,然后将其传递给VBScript,但到目前为止,我还没有找到任何其他帖子,这真的解决了我的问题。下面是使用宏打开访问数据库的示例代码,我需要让它接受用户名和密码。

    Set accdbObj = Wscript.CreateObject("Access.Application")
    accdbObj.Application.Visible = True

    Message = ("Access Password Update Started With Macro...")
    LogInformation Message, Path

    accDatabase = accdbObj.OpenCurrentDatabase(Path)
    accdbObj.Run Macro

    accdbObj.Terminate
    Wscript.Quit

请注意,PathMacro是以字符串形式传递的参数。

1 个答案:

答案 0 :(得分:2)

OpenCurrentDatabase Method数据库密码作为其第三个参数。但是,OpenCurrentDatabase不会返回任何内容,因此我认为将其返回值分配给accDatabase并不合理。请尝试这种方式:

accdbObj.OpenCurrentDatabase Path, , "password_here"

Access数据库文件有两种类型的密码。

  1. 数据库密码:所有用户必须提供的一个密码才能打开数据库
  2. 用户级安全密码:每个已定义用户的单独密码
  3. 我写了这个答案的第一部分,假设你的意思是数据库密码。但是,我注意到你提到了用户名,这表明你可能正在使用ULS(用户级安全性)。仅在较旧的MDB db文件格式中支持ULS。使用Access 2007,您可能正在使用不支持ULS的较新的ACCDB格式。

    如果您实际使用带有ULS的MDB,则需要使用其他方法来打开数据库。您可以将DBEngine.CreateWorkspace 与您的ULS用户名和密码一起使用,然后在该工作区内调用OpenCurrentDatabase