Mostrando entradas con la etiqueta DAO. Mostrar todas las entradas
Mostrando entradas con la etiqueta DAO. Mostrar todas las entradas

lunes, 8 de mayo de 2017

CONECTAR EXCEL Y ACCES CON ADO

El protagonista de hoy es un mecanismo que sirve de interlocutor entre el lenguaje de programación (para nuestro caso VBA) y la base de datos, el nombre de este es ADO. En una entrada anterior vimos como conectar Excel y Acces con eluso del modelo de datos DAO. Aunque parezca un juego de palabras y suene parecido ADO (ActiveX Data Objects) y DAO (Data Access Objects) tienen sus diferencias.

Crearemos una macro que permite capturar la información de un cliente con el uso de un formulario e insertar esta información en una base de datos Acces.

Lo primero que haremos es crear nuestra base de datos en Acces y dentro de ella la tabla clientes con los siguientes campos:


Definimos un formulario por medio del cual capturaremos la información del cliente, este formulario cuenta con varios controles algunos de los cuales ya explicamos en una entrada anterior:


Este es el código para conectarse a la base de datos:


La variable cnn definida de tipo ADODB.Conection , nos servirá para conectarnos a la base de datos, la variable nomdatabase de tipo string contiene la ubicación de la base de datos , la instrucción thisworkbook.path nos retorna la ruta del libro de Excel abierto actualmente como la base de datos está en la misma ruta lo único que debemos hacer es agregar el nombre de la misma. Después de esto abrimos la base de datos.

Para manejar la información del formulario cree un tipo de datos definido por el usuario al cual llame clientes esto lo hice utilizando la palabra reservada type, en próximas entradas trataremos más a fondo su uso.


En la siguiente rutina empezamos a hacer uso del tipo de dato clientes:

Esta rutina recibe como parámetro el formulario creado anteriormente, definimos la variable mycliente de tipo clientes y asignamos a cada campo el valor que contiene el formulario.

Creamos una rutina en la cual generamos la instrucción SQL para insertar el registro en la base de datos.


Esta rutina recibe como parámetro una variable de tipo clientes (tipo de dato que definimos previamente) y crea una instrucción SQL insert.

Finalmente creamos una rutina que lo único que hace es ejecutar la sentencia SQL:

Esta rutina recibe como parámetro la instrucción SQL y la ejecuta con el comando Execute.

Si necesitas automatizar tus procesos en Excel escribe a macrosymacros1@gmail.com.

Con este curso online aprenderás más sobre VBA.

El curso consta de 7 horas y 28 lecciones en vídeo. Aprenderás a ahorrar tiempo en excel , al automatizar tu trabajo mediante macros evitando pérdida de tiempo en tareas repetitivas. Aprenderás desde cero a programar en VBA.
Para mayor información sobre el curso de Excel sigue este enlace.

Si te gusto la macro puedes descargar mi ebook  con más de veinte macros ejemplificadas y explicadas como esta.


lunes, 21 de septiembre de 2015

MACRO PARA RECORRER UNA TABLA ACCES

En una entrada anterior habíamos visto como insertar registros en una base de datos usando macros, hoy veremos cómo consultar o recuperar información de la base de datos atravez de macros.
Excel nos brinda herramientas para importar datos desde acces a la hoja de cálculo, pero además de esto existe la posibilidad de acceder a una base de datos acces usando macros.

Hay dos elementos para tener en cuenta en esta macro:

1.       Modelo DAO(Objetos de acceso a datos): Este utiliza el motor de base de datos Microsoft jet que nos brinda un conjunto de objetos para manipular la base de datos especialmente archivos .mdb.

2.       Recordset: el recordset representa los registros de una tabla de la base de datos o de una consulta.

Para poder presentar este ejemplo previamente cree una basede datos en acces:


Antes de empezar a escribir el código debemos agregar una referencia al modelo de datos DAO


Este es el código que nos permite acceder y recorrer la basede datos


En la primera línea definimos una instancia del modelo de datos DAO que nos permitirá manipular la base de datos.
Definimos una rutina Recorrer tabla como su nombre lo indica es la que más nos interesa. Dentro de esta rutina esta definida la variable WS  de tipo Excel.Worksheet este variable nos permite manipular la hoja de cálculo. La variable STRSQL contendrá la instrucción SQL que ejecutaremos sobre el objeto recordset. Definimos un ciclo que nos ayuda a recorrer la tabla hasta que llegamos al final de la misma.

Antes de ejecutar la macro tenemos la hoja de cálculo vacía


Después de ejecutar la macro podemos ver que trae la información de la base de datos



Puedes aprender más sobre base de datos , instrucciones SQL  y  macros en el curso online de excel podras aprender más sobre este y otros temas

En mi ebook Macrosymacros encontraras una colección de macros, que te serán muy útiles  en tus procesos de automatización de hojas de calculo, puedes encontrarlo aquí.

Espero que te haya sido de utilidad, por favor deja tus comentarios.