我在excel中构建了一个VBA查询,该查询针对Access数据库运行SQL查询。使用以下代码在没有密码的情况下保护数据库时,连接有效:
Set Connection = New ADODB.Connection
Cnct = "Provider=Microsoft.ACE.OLEDB.12.0;"
Cnct = Cnct & "Data Source=" & DBFullName & ";"
Connection.Open ConnectionString:=Cnct
但是,当我用密码保护数据库并尝试上述相同但添加了密码条件时,它将无法连接,我收到“运行时错误-2147217843”消息。我正在使用的代码如下:
Set Connection = New ADODB.Connection
Cnct = "Provider=Microsoft.ACE.OLEDB.12.0;"
Cnct = Cnct & "Data Source=" & DBFullName & ";"
Cnct = Cnct & "user ID=" & Environ("Username") & ";"
Cnct = Cnct & "password=XXXXXXXXXX;"
Connection.Open ConnectionString:=Cnct
有人知道我在这里做错了吗?
答案 0 :(得分:0)
这是Access 2007时要使用的连接字符串 - 使用" 设置数据库使用密码保护2013数据库 密码强>" Access中的功能。
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb;Jet OLEDB:Database Password=MyDbPassword;
有些密码长度超过14个字符的报告。也 有些人物可能会造成麻烦。如果你遇到问题, 尝试将密码更改为具有普通字符的短密码。
注意!报告称使用Access 2010 - 2013默认加密方案加密的数据库不适用于此连接 串。在Access;尝试选项并选择2007加密方法 代替。这应该使它工作。我们不知道任何其他 解。如果有其他解决方案,请联系我们!
(Source)