我的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帖子。