Eu utilizo uma consulta inclusão para inserir dados em uma mdb protegido por mdw.
Com o código abaixo, postado no site de nosso amigo JR eu abro a conexão com esse mdb.
Sub AbreDBProtegido(ByVal strMDWPath As String, _
ByVal strUser As String, ByVal strPwd As String, _
ByVal strMDBPath As String)
On Error GoTo Trata_Err
' Escrito por Joao Rodrigues (JR)
'
http://www.accessjr.cjb.net - JUN/2002.
' strMDWPath - caminho do arquivo MDW.
' strUser - nome do usuário.
' strPwd - senha do usuário.
' strMDBPath - caminho do arquivo MDB/MDE.
Dim cnn As New ADODB.Connection, strCnn As String
' Define a string de conexão.
strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Password=" & strPwd & ";User ID=" & strUser _
& ";Data Source=" & strMDBPath & ";Mode=" &adModeReadWrite &";" _
& "Jet OLEDB

ystem database=" & strMDWPath
cnn.ConnectionString = strCnn
cnn.Open ' UserID e Password poderiam ser passados
' aqui também.
Sai:
If cnn.State = adStateOpen Then
'aqui eu executo minha consulta
DoCmd.OpenQuery "Consulta1"cnn.Close ' Libera recursos.
End If
Set cnn = Nothing ' Libera recursos.
Exit Sub
Trata_Err:
MsgBox Err.Description, vbCritical, Err.Source
Resume Sai
End Sub
O que ocorre é que ao executar a consulta, ele informa que não há privilegios para inserir dados na tabela.
Algume podeira me dar uma luz no que eu estou fazendo errado.
Observo que o usuário que abre o mdb, realmente não tem privilegio para acessar essa tabela. Essa operação é feita de forma "oculta" pelo aplicativo para controlar os usuarios que estão acessando o sistema. No código eu utilizo os dados para acessar corretamente o mdb protegido.