如何连接excel与locking访问数据库从VBA?

我有一个密码访问数据库(“1234”),我想连接一个Excel中的Excel文件提取数据。

如果我取消保护访问文件,我可以连接自己的东西

path = ThisWorkbook.Path & "\KCBD.accdb" cs = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & path & ";Persist Security Info=False;" Set Cn = New ADODB.Connection Cn.Open cs 

它的工作原理,但是当我用密码保护访问文件,我不知道如何做连接。 我已经试过了

 Ruta = ThisWorkbook.Path & "\KCBD.accdb" cs = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Ruta & ";Persist Security Info=False;" & "Password=1234;" Set Cn = New ADODB.Connection Cn.Open cs 

但在“Cn.Open cs”行这个错误使我停下来:运行时错误'-2147217843(80040e4d)'

你可以帮我吗? 非常感谢。

对于安全或密码保护访问数据库使用繁琐的“数据库密码”例如:

 cs = "provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=" & App.Path & "\myAccessFile.accdb;" & _ "Jet OLEDB:Database Password= 1234" 

这里的“App.Path”是你的应用程序的放置位置,你可以放置Access数据库,但是如果有一个指定的位置,那么用你的格式replaceApp.Path,例如:

  Ruta = ThisWorkbook.Path & "\KCBD.accdb" cs = "provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=" & Ruta & ";" & _ "Jet OLEDB:Database Password= 1234" 

如果这不起作用,那么请尝试另一个喷气提供商

 cs = "provider=Microsoft.jet.oledb.4.0;" & _ 

我在这个问题中find了答案: Excel ADODB VBA错误信息“不是有效的密码”

在Access 2010中,数据库密码的encryption方法已更改,ADO提供程序的“Jet OLEDB:数据库密码”关键字似乎不适用于新方法。 在这里,我不得不删除密码,进入Access->文件 – >选项 – >客户端设置 – >高级,并选中“使用传统encryption”,然后重新创build密码。 我不知道ACE提供程序是否有任何新的OLE DB连接string关键字,或者在使用ADO.NET时是否也会出现此问题

感谢bibadia用户