【发布时间】: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 连接字符串尝试当前代码