设置密码后无法从 VBA 连接到 MDB
Not able to connect to MDB from VBA after setup a Password
我的 VBA (Excel) 中有一个没有密码的 MDB 连接,它工作正常,但我决定在我的 MDB 文件中设置一个密码,然后我在连接中写入密码代码,但它不工作!我收到一条消息:
"Cannot start your appliaction, The workgroup information file is missing or exclusively opened by other users"
我正在尝试通过谷歌搜索找到解决方案,但没有任何效果。有人知道怎么解决吗
代码如下:
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
澄清一下,MDBname 有 MDB 的路径(而且是正确的)
UserId:="Administrador" - Administrador 是管理员(葡萄牙语)
拜托!我需要解决它! :S
尝试使用连接字符串而不是 With 方法。参见 three possible methods。
strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source Name=" & MDBNAME & ";" & _
"Jet OLEDB:Database Password=ABC123"
DB.Connection.Open strConn
其他一些建议:
在旧的 MDB 数据库中,安全级别是一项特定于用户工作组的功能。确保在整个文件级别而不是用户组级别设置数据库密码,可能是管理员用户。
检查 32-bit/64-bit 级别 OLE/ODBC drivers on your machine. Finally, consider changing Provider to earlier Jet.OLEDB version. See this SO post。
我的 VBA (Excel) 中有一个没有密码的 MDB 连接,它工作正常,但我决定在我的 MDB 文件中设置一个密码,然后我在连接中写入密码代码,但它不工作!我收到一条消息:
"Cannot start your appliaction, The workgroup information file is missing or exclusively opened by other users"
我正在尝试通过谷歌搜索找到解决方案,但没有任何效果。有人知道怎么解决吗
代码如下:
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
澄清一下,MDBname 有 MDB 的路径(而且是正确的) UserId:="Administrador" - Administrador 是管理员(葡萄牙语)
拜托!我需要解决它! :S
尝试使用连接字符串而不是 With 方法。参见 three possible methods。
strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source Name=" & MDBNAME & ";" & _
"Jet OLEDB:Database Password=ABC123"
DB.Connection.Open strConn
其他一些建议:
在旧的 MDB 数据库中,安全级别是一项特定于用户工作组的功能。确保在整个文件级别而不是用户组级别设置数据库密码,可能是管理员用户。
检查 32-bit/64-bit 级别 OLE/ODBC drivers on your machine. Finally, consider changing Provider to earlier Jet.OLEDB version. See this SO post。