Excel ADODB VBA错误消息'非有效密码'

时间:2012-08-20 12:18:20

标签: vba ms-access-2010

我正在尝试通过Excel VBA打开一个连接密码保护的AccessDB。

我使用以下连接字符串

conn.Provider = "Microsoft.ACE.OLEDB.12.0"
conn.ConnectionString = "Data Source=dbPath; Jet OLEDB:Database Password=pwd;"

其中dbPath是accdb / mdb文件的路径,pwd是dbfile的密码。密码绝对正确,但我总是收到错误“非有效密码”。 有人可以指导我吗? -SRI。

其他信息:  我正在使用Office 2010并将此数据库保存为mdb(2003)文件(我尝试使用accdb extn保存此文件)。 当我尝试为数据库设置密码时,它会显示msg“使用块密码进行加密与行级锁定不兼容。将忽略行级锁定。” 它与VBA中的错误消息有什么关系吗?

3 个答案:

答案 0 :(得分:8)

在Access 2010中,更改了数据库密码的加密方法,并且ADO提供程序的“Jet OLEDB:Database Password”关键字似乎不适用于新方法。在这里,我必须删除密码,进入Access->文件 - >选项 - >客户端设置 - >高级并选中“使用旧版加密”,然后重新创建密码。

我不知道ACE提供程序是否有任何新的OLE DB连接字符串关键字,或者在使用ADO.NET时是否也会出现此问题

答案 1 :(得分:0)

或者你可以这样做。

    conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbPath & ";Jet OLEDB:Database Password=" & pwd

答案 2 :(得分:0)

请按如下方式使用

conStr = "Provider=Microsoft.ACE.OLEDB.16.0;Data Source=C:\Users\csub1\Desktop\empdata.xlsx;Persist Security Info=False;Jet OLEDB:Database Password=pass@123;扩展属性='Excel 12.0;HDR=Yes;';Jet OLEDB:System database=C:\Users\csub1\AppData\Roaming\Microsoft\Access\System.mdw"

请找到 System.mdw 文件并在系统数据库下提供它。提供密码时请使用Jet OLEDB:Database Password。

经过大量研究,它奏效了。