我正在尝试将excel(2013)中的用户表单数据提交到访问数据库。
没有密码,这段代码工作正常。
Private Sub Addoer_Click()
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim dbPath
dbPath = Sheet16.Range("K18").Value
Set cnn = New ADODB.Connection
cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data source=" & dbPath
现在我尝试使用相同的方法将数据从excel发送到受密码保护的数据库(每个用户都有不同的密码)。在excel文件中,用户ID位于Sheet16.Range(" K17"),密码位于Sheet16.Range(" K19")
userid = Sheet16.Range("K17").Value
pw = Sheet16.Range("K19").Value
我将cnn.open行更改为以下
cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data source=" & dbPath, userid, pw, -1
我收到此错误:
错误-2147217843(无法启动您的应用程序。工作组信息文件丢失或由其他用户独占打开。)
我将cnn.open行更改为此
cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data source=" & dbPath, """ & userid & """, """ & pw & """, -1
我收到此错误
错误-2147217843(不是有效的帐户名或密码)。
有没有人可以帮我指出我做错了什么?
答案 0 :(得分:0)
您的第二次尝试无效,因为当用户名实际为"user"
时,您的用户名为user
。
关于您的第一次尝试,我在connectionstrings.com:
找到了此便笺注意!报告称使用Access 2010 - 2013默认加密方案加密的数据库不适用于此连接字符串。在Access;尝试选项并选择2007加密方法。这应该有效。
此外,可能是数据库是由另一个连接/程序专门打开的吗?如果您在Access中打开了数据库并且可以设计表/查询,那么IIRC意味着您可以独占访问数据库,并且没有其他连接可以连接到它。您是否在Access数据库所在的文件夹中看到.laccdb
(或.ldb
)文件?
<强>参考文献:强>