Macro abrir desde Excel base de datos Access protegida por contraseña

De un usuario que publicó un ejemplo, tengo en un libro de Excel la siguiente macro que abre una base de datos access para guardar en ella datos de Excel:

Sub AltaElectrAccess()
Dim Conn As ADODB.Connection 'creo una conexión tipo ADO
Dim MiConexion 'variable de conexión a la tabla de Access
Dim Rs As ADODB.Recordset 'rs quiere decir record set, es decir el conjunto de datos que se van a guardar
Dim MiBase As String 'nombre de la base de datos en Access
MiBase = "DIAN.accdb" 'es el nombre completo de la base de datos donde se guardarán los datos
Set Conn = New ADODB.Connection 'creamos una nueva conexión con la base de datos
MiConexion = Application.ThisWorkbook.Path & Application.PathSeparator & MiBase 'archivo de Access
With Conn
.Provider = "Microsoft.ACE.OLEDB.12.0" 'se abrirá la conexión
.Open MiConexion
End With
Set TEMP_ELECT = Sheets("TEMP ELECT")
Set Factura = Sheets("FACTURA")
Set Rs = New ADODB.Recordset
Rs.CursorLocation = adUseServer 'el cursor se va a quedar en la base de datos
Rs.Open Source:="Tb_Electronica", _
ActiveConnection:=Conn, _
CursorType:=adOpenDynamic, _
LockType:=adLockOptimistic, _
Options:=adCmdTable 'se genera una consulta interna sql
'cargar los datos a tabla de Access
With Rs
.AddNew

'INSTRUCCIONES...

End With
Rs.Update
'Cerrar la conexión
Rs.Close
Conn.Close
Set Rs = Nothing
Set Conn = Nothing
MsgBox "Registro Exitoso"
End Sub

La pregunta puntual es cómo puedo hacer para abrir la base de datos Access si esta está protegida por contraseña, y al finalizar el proceso de Excel, que vuelva a proteger la base de Access.

1 respuesta

Respuesta
1

[Hola

Lo primero que tienes que hacer es quitar la contraseña, una vez hecho eso ve a Archivo - Opciones - Configuración del cliente - Avanzadas y en "Método de cifrado" marca "Usar cifrado heredado". Ahora crea una nueva contraseña y para conectarte usa la siguiente cadena:

cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
    "Data Source=" & ThisWorkbook.Path & "\Datos.accdb;" & _
        "Jet OLEDB:Database Password=aquítuclave;"

Obviamente adapta la cadena a la tuya.

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas