Mostrando entradas con la etiqueta insertar. Mostrar todas las entradas
Mostrando entradas con la etiqueta insertar. 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.


sábado, 17 de septiembre de 2016

MACRO PARA AGREGAR HOJAS A UN LIBRO DE EXCEL

Por lo general agregar una hoja a un libro de Excel resulta bastante sencillo, basta con hacer clic en el botón insertar hoja de calculo. Pero si tuvieras que agregar muchas hojas a un libro con un determinado nombre para cada hoja, entonces te seria muy útil automatizar este proceso.

Hoy quiero mostrarles como podemos hacer esto con una macro sencilla pero muy útil. Cada vez que ejecutemos esta macro se insertara en el libro de de Excel que la contenga una hoja de calculo que llevara como nombre la fecha del sistema.

La macro funciona de la siguiente manera:

1.   Captura la fecha del sistema.
2.   Valida la fecha del sistema, contra el campo fecha de una hoja(X) del libro de Excel.
3.    Si la fecha del sistema es mayor al valor que tiene la hoja de calculo(X) en el campo fecha, se inserta una nueva hoja de calculo que llevara como nombre la fecha del sistema y actualizara el campo fecha de la hoja(X).

Hemos creado un libro de Excel llamado macro25 y en el una hoja de cálculo con el nombre parámetros, esta hoja de calculo tiene un campo que se llama fecha:


La posición A2 de la hoja de cálculo debe estar vacía la primera vez que se ejecute la macro.

Ahora escribimos el código de nuestra macro, definimos las siguientes variables globales: 


La variable ws nos servirá para identificar la hoja de cálculo activa, la variable fecha nos servirá para almacenar la fecha del sistema.

Crearemos una rutina para capturar la fecha del sistema y compararla contra el campo fecha (posición A2) de la hoja parámetros:


Analicemos la rutina fecha del sistema:

Primera línea: se asigna a la variable ws la hoja parámetros, a partir de ahora la hoja  parámetros se identifica como ws.

Segunda línea: Encuentra la fecha del sistema año, mes y día. Los convierte a string usando la función CSTR y los concatena, para asignarlos a la varia fecha.

Tercera línea: Valida si la variable fecha es mayor al campo fecha de la hoja parámetros o si el campo fecha de la hoja parámetros esta vacio.

Cuarta Línea: Si se cumple la condición de la tercera línea se invoca la rutina Crear hoja, la que insertara la hoja de calculo en el libro de Excel.

Quinta Línea: Asigna al campo fecha de la hoja parámetros la fecha del sistema, esto si se cumple la condición de la tercera línea.

La segunda rutina inserta la hoja de cálculo en el libro, veamos su código:

En esta rutina se definen las siguientes variables locales:

Ws_nueva que nos permitirá identificar la hoja de cálculo activa, nombre que almacenara el nombre de la hoja de cálculo activa.

En la primera línea: Después de definir las variables se agrega una hoja de calculo al libro de Excel.

En la segunda línea: se le asigna a la variable ws_nueva la hoja de cálculo activa.

En la tercera línea: Se le asigna a la variable nombre el nombre de la hoja de calculo insertada.

En la cuarta línea: Se agregan comillas al principio y al final del nombre de la hoja de calculo que se acaba de insertar, es necesario insertar la comillas para poder ejecutar la instrucción de la sexta línea.

En la quinta línea: se asigna a la variable nombre fecha la fecha del sistema.

En la sexta línea: Se cambia el nombre la hoja insertada y se asigna como nombre la fecha del sistema.

Para que se ejecute la macro cada vez que abrimos el libro agregamos las siguientes instrucciones:

Ahora hacemos clic en guardar, cerramos nuestro libro de Excel.

Hoy es 11 de septiembre de 2016.


Si abro nuevamente el libro de Excel vemos lo siguiente:


Se inserto una hoja de cálculo con el nombre 20160911, el campo fecha de la hoja de cálculo queda con la fecha del sistema:


Si actualizo la fecha del sistema con el día 12 de septiembre:



Abrimos nuevamente e libro de Excel y vemos que se creo una nueva hoja de cálculo con el nombre 20160912:


El campo fecha de la hoja parámetros se actualiza:


Descarga el archivo con la macro desde este enlace.

Espero que esta macro te sea util , si necesitas automatizar tus procesos en excel escribeme a macrosymacros1@gmail.com.

En este enlace encontraras una colección de macros como esta , completamente explicadas.