设置密码后,无法从VBA连接到MDB



我的VBA(Excel)中有一个MDB连接,但没有密码,这很好,但我决定在MDB文件中设置一个密码,然后我在连接代码中写入了密码,但它不起作用!我收到一条消息:

"无法启动应用程序,工作组信息文件丢失或由其他用户以独占方式打开"

我正试图在谷歌上找到一个解决方案,但什么都不适合我。有人知道如何解决吗

这是代码:

Public Function OpenMDB(ByRef MDBname As String) As Variant
Dim DBConnection As ADODB.Connection
On Error Resume Next
Set DBConnection = New ADODB.Connection
With DBConnection
    .Provider = "Microsoft.ACE.OLEDB.12.0"
    .Mode = adModeShareDenyNone
    .Open MDBname, UserId:="Administrador", Password:="ABC123", Options:=adAsyncConnect
End With
If Err.Number <> 0 Then
    Set OpenMDB = Nothing
    MsgBox "Error on DB", "Error to connect"
    End
Else
    Set OpenMDB = DBConnection
End If
End Function

只是为了澄清一下,MDB名称有MDB的路径(这是正确的)UserId="Administrador"-Administrader是管理员(葡萄牙语)

求你了!我需要解决它!:S

不要使用With方法,而是尝试使用连接字符串。请参阅三种可能的方法。

strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source Name=" & MDBNAME & ";" & _ 
          "Jet OLEDB:Database Password=ABC123"
DB.Connection.Open strConn

其他一些建议:

在旧的MDB数据库中,安全级别是特定于用户工作组的一项功能。请确保在整个文件级别而不是用户组级别设置数据库密码,可能是管理员用户。

检查机器上的32位/64位级别的OLE/ODBC驱动程序。最后,考虑将Provider更改为早期的Jet.OLEDB版本。请参阅此SO帖子。

最新更新