我有一个具有密码(“ 1234”)的Access数据库,并且我想使用VBA连接Excel文件以提取数据。
如果取消保护Access文件,则可以连接类似这样的东西
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
当我用密码保护Access文件时,我不知道如何进行连接。
我尝试过
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)'
我找到了这个问题的答案:Excel ADODB VBA error msg 'Not a Valid Password'
在Access 2010中,加密方法已更改为数据库密码,并且ADO提供程序的“ Jet OLEDB:Database Password”关键字似乎不适用于新方法。在这里,我必须删除密码,进入“访问”->“文件”->“选项”->“客户端设置”->“高级”,并选中“使用旧版加密”,然后重新创建密码。我不知道ACE提供程序是否有任何新的OLE DB连接字符串关键字,或者在使用ADO.NET时是否也会出现此问题]]
感谢bibadia
用户对于安全或受密码保护的Access数据库,请使用属性“数据库密码”例如: