Páginas

Aprenda Programación ADO con Access | Conexión Activa

¿Qué significa ADO?  A.D.O. ActiveX Data Object (Objetos de datos ActiveX)

Objetivo de la Tecnología ADO en Access: Conectar una Aplicación de Access con un origen de datos. (Conectar nuestra base de datos Access con otra base de datos, no necesariamente Access u otra fuente de datos)

Ejemplos de datos de datos a los que podemos conectarnos usando ADO:
·         Access
·         Oracle
·         MySQL
·         Excel
·         SQL Azure

PROGRAMACION ADO EN ACCESS: INTRODUCCION

“ActiveX Data Objects (ADO) fue creado por Microsoft para proporcionar un objeto estandarizado, Modelo para la conexión a una amplia variedad de fuentes de datos externas.”


Cuando se usa Access 2010 para crear una nueva base de datos, por defecto usa el proveedor de datos ACE OLE DB para la conexión  del proyecto actual (CurrentProject). Significa que cualquier funcionalidad que use el objeto CurrentProject  será a través del proveedor OLE DB Provider
Para confirmar esto, escriba la siguiente línea de código en la ventana inmediato del Editor VBA de Access

?CurrentProject.Connection
El Resultado sera semejante a este:
Provider=Microsoft.ACE.OLEDB.12.0


AGREGANDO REFERENCIAS ADO EN ACCESS

“Esencialmente, ADO es una biblioteca de código que permite a los desarrolladores trabajar con los datos de todos los diferentes tipos de fuentes de datos.”





















A fin de poder utilizar ADO, será  necesario agregar una referencia VBA
Buscaremos en las referencias disponibles en nuestro Editor VBA de Access esta referencia:
Microsoft ActiveX Data Objects 6.1 Library
O una más actual si se encuentra disponible. (En este ejemplo se cita la versión 6.1)

ESQUEMA DE CONEXIÓN ADO EN ACCESS
Para realizar una conexión ADO desde Access estos son los pasos que debemos  seguir:

Paso 1: Crear Conexión.  La forma de realizar este paso es creando un objeto de tipo Connetion

Paso 2: Extraer la información. Aquí debemos aplicar lenguaje SQL para indicar que datos queremos extraer de la base de datos, esto lo haremos creando un objeto de tipo Command  (Instrucción SQL)

Paso 3: Almacenar la información extraída.  Para usar nuestra información extraída será necesario crear un Recorset que viene siendo una tabla virtual en Memoria, donde temporalmente estarán nuestros registros extraídos.


Aquí Código de Ejemplo. Conectando a nuestra base de datos Actual.



   
Option Compare Database

Private Sub cmdENTRAR_Click()

'llamar a la funcion existeEmpleado y pasarle los valores del formulario
If existeEmpleado(Me.txtUSUARIO.Value, Me.txtCLAVE.Value) = True Then
    MsgBox "Acceso Concedido", vbInformation + vbOKOnly, "Mensaje"
Else
    MsgBox "Acceso Denegado", vbCritical + vbOKOnly, "Mensaje"
End If

End Sub


Public Function existeEmpleado(nombreUsuario As String, claveUsuario As String) As Boolean

'PASO 1 Crear Conexion
Dim miConexion  As New ADODB.Connection
Set miConexion = CurrentProject.Connection 'la conexion a la base de datos Activa

'PASO 2 Extraer Informacion
Dim instruccionSQL As String
instruccionSQL = "SELECT * FROM EMPLEADOS"

'PASO 3 Almancenar Informacion Extraida
Dim miRecordset As New ADODB.Recordset
'abrimos el Recordset y le asignamos la instruccion de extraccion y la conexion
miRecordset.Open instruccionSQL, miConexion

'Generamos un Bucle para recorrer la tabla virtual del Recordset
Do Until miRecordset.EOF

    'En esta condicion IF comparamos los valores recibidos por la funcion: "nombreUsuario" y "claveUsuario"
    'y las comparamos con los registros devueltos por el Recordset
    'Si resulta verdadero, entonces si encontro los valores del formulario en la tabla de EMPLEADOS
    If nombreUsuario = miRecordset!USUARIO And claveUsuario = miRecordset!CLAVE Then
        existeEmpleado = True
        Exit Function
        Else
        existeEmpleado = False
    End If
 
    'avanza al siguiente registro
    miRecordset.MoveNext
Loop

'Despues de utilizar el Recordset y la Conexion debemos cerrarlas  y borrarlas de la memoria
miRecordset.Close
Set miRecordset = Nothing

miConexion.Close
Set miConexion = Nothing

End Function


Base de datos de Ejemplo, Descargar Aqui

2 comentarios: