无法打开 ADODB 记录集(使用密码)
Unable to open ADODB recordset (with password)
我有以下代码来打开到另一个 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
连接本身可以正常打开,但奇怪的是记录集无法打开,我收到 运行 时间错误说
Not a valid password
密码肯定是正确的(连接打开就是证据)。在数据库上设置密码时,我确保选择了旧版加密选项以实现兼容性。我也用这段代码打开了一个不同的数据库,它工作正常。
有人知道为什么它可能不起作用吗?
对于任何有兴趣的人。我发现了问题。只是因为我试图在记录集中使用的 table 实际上是一个链接 table。我将文件路径更改为后端路径,现在可以正常工作了。
ヾ(`ヘ´)ノ゙
我有以下代码来打开到另一个 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
连接本身可以正常打开,但奇怪的是记录集无法打开,我收到 运行 时间错误说
Not a valid password
密码肯定是正确的(连接打开就是证据)。在数据库上设置密码时,我确保选择了旧版加密选项以实现兼容性。我也用这段代码打开了一个不同的数据库,它工作正常。
有人知道为什么它可能不起作用吗?
对于任何有兴趣的人。我发现了问题。只是因为我试图在记录集中使用的 table 实际上是一个链接 table。我将文件路径更改为后端路径,现在可以正常工作了。
ヾ(`ヘ´)ノ゙