Estoy trabajando con access y ahora quiero incorporar clave a la BD, no logro crear una cadena de conexión valida, copio código donde abro la base y carga un combobox,
Ingresa siempre a If cn.State <> 1 , no reconoce la clave prpporcionada
Saludos.
Private Sub CargarComboFormRubrado()
Dim cn As Object
Dim datos As Object
Dim consultaSQL As String
Dim conexion As String
Dim rutaBaseDatos As String
Dim contraseña As String
' Obtengo la ruta donde se encuentra el archivo de Excel actual
rutaBaseDatos = ThisWorkbook.Path & "\Rbo.accdb"
' Verificar si la base de datos existe en la ruta proporcionada
If Not CheckDatabaseExistence(rutaBaseDatos) Then
Exit Sub
End If
' Establece la contraseña de base de datos cifrada
contraseña = "1234"
' Crea la cadena de conexión con la contraseña
conexion = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & rutaBaseDatos & ";Jet OLEDB:Database Password=" & contraseña
Set cn = CreateObject("ADODB.Connection")
' Abrir la conexión a la base de datos con la contraseña
On Error Resume Next
cn.Open conexion
On Error GoTo 0
' Verifica si se pudo abrir la base de datos con la contraseña
If cn.State <> 1 Then
MsgBox "Error al abrir la base de datos. Verifica la contraseña.", vbExclamation, "Error"
Exit Sub
End If
consultaSQL = "SELECT * FROM TRUBRADO" ' Nombre tabla access
' Crear el objeto Recordset y abrir la consulta
Set datos = CreateObject("ADODB.Recordset")
datos.CursorLocation = 3 ' adUseServer
datos.Open consultaSQL, cn
' Validar si la consulta devuelve resultados
If datos.EOF And datos.BOF Then
' Cerrar la conexión y liberar recursos
datos.Close
cn.Close
Set datos = Nothing
Set cn = Nothing
Application.EnableCancelKey = xlDisabled
MsgBox "No hay resultados", vbInformation, "INFO"
Exit Sub
End If
' Limpiar ComboBox1
Me.CbxRubrado.Clear
' Recorrer el Recordset y cargar datos en ComboBox1
Do While Not datos.EOF
Dim campoID As String
Dim campoNombre As String
Estimados recurro nuevamente con otra consulta,
Estoy trabajando con access y ahora quiero incorporar clave a la BD, no logro crear una cadena de conexión valida, copio código donde abro la base y carga un combobox,
Ingresa siempre a If cn.State <> 1 , no reconoce la clave prpporcionada
Saludos.
Private Sub CargarComboFormRubrado()
Dim cn As Object
Dim datos As Object
Dim consultaSQL As String
Dim conexion As String
Dim rutaBaseDatos As String
Dim contraseña As String
' Obtengo la ruta donde se encuentra el archivo de Excel actual
rutaBaseDatos = ThisWorkbook.Path & "\Rbo.accdb"
' Verificar si la base de datos existe en la ruta proporcionada
If Not CheckDatabaseExistence(rutaBaseDatos) Then
Exit Sub
End If
' Establece la contraseña de base de datos cifrada
contraseña = "1234"
' Crea la cadena de conexión con la contraseña
conexion = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & rutaBaseDatos & ";Jet OLEDB:Database Password=" & contraseña
Set cn = CreateObject("ADODB.Connection")
' Abrir la conexión a la base de datos con la contraseña
On Error Resume Next
cn.Open conexion
On Error GoTo 0
' Verifica si se pudo abrir la base de datos con la contraseña
If cn.State <> 1 Then
MsgBox "Error al abrir la base de datos. Verifica la contraseña.", vbExclamation, "Error"
Exit Sub
End If
consultaSQL = "SELECT * FROM TRUBRADO" ' Nombre tabla access
' Crear el objeto Recordset y abrir la consulta
Set datos = CreateObject("ADODB.Recordset")
datos.CursorLocation = 3 ' adUseServer
datos.Open consultaSQL, cn
' Validar si la consulta devuelve resultados
If datos.EOF And datos.BOF Then
' Cerrar la conexión y liberar recursos
datos.Close
cn.Close
Set datos = Nothing
Set cn = Nothing
Application.EnableCancelKey = xlDisabled
MsgBox "No hay resultados", vbInformation, "INFO"
Exit Sub
End If
' Limpiar ComboBox1
Me.CbxRubrado.Clear
' Recorrer el Recordset y cargar datos en ComboBox1
Do While Not datos.EOF
Dim campoID As String
Dim campoNombre As String
campoID = ControloNull(datos.Fields(0))
campoNombre = ControloNull(datos.Fields(1))
' Agregar el campoNombre al ComboBox
Me.CbxRubrado.AddItem campoNombre
' Guardar el campoID en la propiedad List del ComboBox
Me.CbxRubrado.List(Me.CbxRubrado.ListCount - 1, 1) = campoID
datos.MoveNext
Loop
' Cerrar la conexión y liberar recursos
datos.Close
cn.Close
Set datos = Nothing
Set cn = Nothing
End Sub