【问题标题】:Opening a Password Protected Access Database Using VBScript使用 VBScript 打开受密码保护的访问数据库
【发布时间】:2013-04-18 13:19:08
【问题描述】:

我有一个受密码保护的访问数据库,需要在一夜之间更新。我们编写了一个精简的 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 是作为字符串传入的参数。

【问题讨论】:

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


    【解决方案1】:

    将您的数据库密码OpenCurrentDatabase Method 作为第三个参数。但是,OpenCurrentDatabase 不返回任何内容,因此我认为将其返回值分配给 accDatabase 是没有意义的。试试这种方式:

    accdbObj.OpenCurrentDatabase Path, , "password_here"
    

    Access db 文件有两种类型的密码。

    1. 数据库密码:一个所有用户必须提供的密码才能打开数据库
    2. 用户级安全密码:每个已定义用户的单独密码

    假设您的意思是数据库密码,我写了这个答案的第一部分。但是,后来我注意到您提到了用户名,这表明您可能正在使用 ULS(用户级安全性)。 ULS 仅在较旧的 MDB db 文件格式中受支持。对于 Access 2007,您可能正在使用不支持 ULS 的较新的 ACCDB 格式。

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

    【讨论】:

    • 会试试看,还有什么用户名建议吗?
    • 是的,我在这一点上感到困惑......请参阅修订后的答案。那你在用MDB和ULS吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多