domingo, 2 de abril de 2017

Ejecutar la instrucción UPDATE de SQL desde Excel usando VBA

En este segundo post, vamos a ejecutar la instrucción UPDATE que básicamente es para actualizar registros en una base de datos. Sencilla pero poderosa y de mucho cuidado, pues después de ejecutada no la podremos deshacer. Nuevamente, vamos a construir una macro que va a combinar vba y sql.

Vamos a iniciar abriendo un archivo de excel, y vamos a dar la combinación de teclas Alt + F11 para abrir el editor de visual basic. Nos  deberá aparecer la siguiente ventana:


Seleccionamos la opción para insertar un módulo:


Y estamos listos para iniciar a escribir nuestro código:


Para realizar las operaciones con la base de datos y poder acceder a los objetos de la misma, vamos a trabajar con la librería ADO. Dicha librería no esta disponible por defecto, así que vamos a entrar al menú del editor, seleccionamos la opción Herramientas y después Referencias:


En el cuadro de dialogo que se despliega, vamos a buscar la opción: Microsoft ActiveX Data Objects 2.8 Library, la seleccionamos y le damos aceptar:



Escribimos el nombre de nuestra macro y estamos listos para iniciar a codificar:


Para poder interactuar mediante ADO con cualquier base de datos vamos a necesitar una conexión, que es el canal y un objeto para pasar las instrucciones que queremos se ejecuten en la base de datos. Dicho esto, vamos a crear los dos objetos en nuestro programa:


Vamos a pasar los parámetros para nuestra conexión:


En verde, están los comentarios que documentan nuestro código. Ahora vamos a construir nuestro comando de la siguiente forma:


La forma general de la instrucción UPDATE es la siguiente: UPDATE nombre tabla SET nombre campo. tblReales es la tabla de la que queremos actualizar los datos, en este caso el campo a actualizar es geografia. Esa tabla contiene la siguiente información:


El campo geografía actualmente tiene contiene el texto: Mexico para todos los registros. Lo que vamos a hacer es actualizarlo por Colombia.

Vamos entonces a ejecutar nuestro código para confirmar que funciona, como saben lo podemos hacer paso a paso con F8 o ejecutarla en un solo paso. Yo lo voy a hacer en un solo paso y vamos a verificar de nuevo que la tabla este limpia en Ms Access:


Como pueden ver, nuestra tabla esta actualizada. Este ejercicio es de sumo cuidado, pues si lo que quieren es actualizar un subconjunto de los datos contenidos en la tabla, deben incluir la clausula WHERE. En otro post veremos como usarla y por supuesto construiremos una macro para cargar los datos en la misma tabla.

A continuación el código fuente. Espero les sirva:

Código:

2 comentarios: