【问题标题】:Unable to open ADODB recordset (with password)无法打开 ADODB 记录集(使用密码)
【发布时间】:2018-05-10 15:23:36
【问题描述】:

我有下面的代码来打开到另一个 Access 数据库的连接,然后打开一个记录集

Sub OpenTest()
Dim Acon As New ADODB.Connection
Dim rst As ADODB.Recordset

 With Acon
    .Provider = "Microsoft.ACE.OLEDB.12.0"
    .ConnectionString = "C:\MyFolder\MyDb.accdb"
    .Properties("Jet OLEDB:Database Password") = "OpenSesame"
    .Open
 End With

 Set rst = New ADODB.Recordset
 rst.Open "SELECT * FROM tblAdmin", Acon, adOpenDynamic, adLockReadOnly

 If rst.EOF = False Or rst.BOF = False Then
    rst.MoveFirst
    Debug.Print rst!UserID
 End If

 Set rst = Nothing
 Acon.Close
End Sub

连接本身可以正常打开,但奇怪的是记录集无法打开,并且出现运行时错误提示

密码无效

密码肯定是正确的(从连接打开就可以证明)。在数据库上设置密码时,我确保选择了旧加密选项以实现兼容性。我还使用此代码打开了一个不同的数据库,它工作正常。

有人知道为什么它可能不起作用吗?

【问题讨论】:

  • 您是否尝试过使用Set rst = Acon.Execute(query)
  • 您好,感谢您的回复。我已经尝试过了,但不幸的是我仍然收到相同的错误消息
  • 第一次使用连接时,连接真正打开。在.Open 上没有收到错误并不意味着您的密码正确。
  • 感谢您的回复。我不确定是否会出现这种情况,就好像我输入了错误的密码然后连接无法打开但是使用正确的密码然后它在打开记录集的行上失败了。我自己打开了数据库,输入了密码确保正确
  • 您是否在数据库上使用用户级安全性?这样你就可以有两个不同的密码。或者,您可以使用 ODBC 连接字符串尝试当前代码

标签: ms-access vba adodb


【解决方案1】:

对于任何有兴趣的人。我发现了问题。只是因为我试图在记录集中使用的表实际上是一个链接表。我将文件路径更改为后端的文件路径,现在可以正常工作了。

ヾ(`ヘ´)ノ゙

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 2012-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多