4

我正在尝试通过 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 的密码。密码绝对正确,但我总是收到错误“不是有效密码”。有人可以指导我吗?-斯里兰卡。

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

4

3 回答 3

10

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

不知道ACE提供者是否有新的OLE DB连接字符串关键字或者使用ADO.NET时是否也会出现这个问题

于 2012-10-21T14:17:59.060 回答
0

或者你可以这样做。

    conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbPath & ";Jet OLEDB:Database Password=" & pwd
于 2012-08-20T16:10:42.503 回答
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;Extended Properties='Excel 12.0;HDR=Yes;';Jet OLEDB:系统数据库=C:\Users\csub1\AppData\Roaming\Microsoft\Access\System.mdw"

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

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

于 2021-03-12T09:57:55.670 回答