无法从Excel中的VBA查询连接到Access数据库

时间:2015-06-16 11:05:25

标签: excel vba ms-access access-vba excel-2010

我在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

有人知道我在这里做错了吗?

1 个答案:

答案 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