¿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
?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:
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
Excelente, me sirvió.
ResponderBorrarMuy bien, me agrado mucho la explicación en tres paso para acceder a datos. Saludos y gracias.
ResponderBorrar