miércoles, 9 de noviembre de 2011

Macros para Access

¿Qué es?Como ya se explicó en clases, las macros son muy útiles dado que nos permiten hacer que ciertas acciones o tareas que realizamos con frecuencia, se realicen de forma automática. Con Microsoft Access, su utilidad es la misma, en el sentido de que podemos automatizar tareas y mejorar la funcionalidad de formularios, informes y controles (términos que serán explicados brevemente más adelante).

¿Cómo funciona?Generar una macro en Access, resulta mucho más fácil, dado que este programa simplifica el procedimiento de creación de éstas, evitando que los usuarios tengan que escribir el código en módulos de Visual Basic (VBA), el cual podría llegar a complicar a personas que no entienden lenguaje de programación. A su vez, en la última versión de Access (2010), la interfaz de creación de macros es mucho más amigable para los usuarios y además se asemeja a la estructura básica de programación de macros de VBA. Las macros en Access consisten de una lista de acciones a realizar, donde cada acción es elegida de una lista desplegable, donde luego el usuario deberá determinar o especificar los argumentos, condiciones y/o criterios que desea que cumplan las acciones de la macro a la hora de ejecutarse. Es a partir de esta gran variedad de acciones y comandos, proporcionados por Access, de donde se generan y crean las macros. Por ejemplo, algunas de las acciones más utilizadas sirven para abrir un informe, buscar un registro, mostrar un cuadro de mensaje o aplicar un filtro a un formulario o un informe.

La continuación, después del salto.


Definiciones breves
  • Formulario:
Sirven para crear una interfaz de usuario para una aplicación de base de datos. Es decir, aceleran el uso de la base de datos por parte del usuario, en el sentido que entrega la información necesaria sobre las bases sin que los usuarios deban buscarla; además de entregar la información en una forma fácil de entender. A través de ellos, se puede controlar qué campos o filas de la base total se van a mostrar; o en qué datos o números específicos deseamos que los otros usuarios se enfoquen. Los formularios pueden ser enlazados o independientes; es decir, pueden estar conectados directamente a una tabla o una consulta, o no tener vínculo directo a un origen de datos. El primer tipo es el más utilizado generalmente.
  • Informe:
Este es otro objeto de las bases de datos, que también nos permite ver ciertos datos y darles un formato especial. También podemos usarlo para resumir los datos, como por ejemplo el total de ventas para una compañía, dividido por periodos, una lista que muestre la comuna de todos los clientes, etc. Sirve para archivar y/o distribuir datos de forma inmediata y exportarlos a otros formatos de programas, o bien imprimirlos. Los informes pueden ser de registros individuales o varios registros.
  • Control:
Parte de los formularios e informes que nos permiten insertar, cambiar o mostrar los datos. Algunos ejemplos son los cuadros de texto o las listas desplegables. Pueden ser dependientes, independientes o calculados.

Procedimiento para crear una macro
Primero, nos dirigimos a la pestaña de “Crear” en nuestra ventana de Access, y seleccionamos “Macro” en el lado derecho de las opciones, en el grupo de “Macros y código”.
Esto nos llevará al Generador de Macros de Access, donde en la parte superior tenemos las siguientes opciones:
En la parte de “Herramientas”, tenemos las opciones para ejecutar la macro diseñada completa, ejecutarla paso a paso (la misma función del F8 para las macros que hemos visto en clases para Excel), y también podemos convertir las macros al lenguaje que ya conocemos de VBA.

Las opciones de “Contraer o expandir” nos permiten ver de forma ordenada o de forma detallada las macros. Es decir, si queremos ver solo las acciones, sin los argumentos o condiciones, para apreciar el orden de la macro, presionamos “Contraer acciones”. Si queremos ver sólo los bloques de acciones, usamos “Contraer todo”; por ejemplo, un bloque de acciones sería el comando condicional Si, las acciones que se ejecutan si la condición da verdadero o falso pertenecerían a este bloque y se ocultarían al presionar esta opción. Si deseamos volver a la visión detallada de la macro o queremos editar los argumentos, usamos las opciones de “Expandir acciones” y/o “Expandir todo”.

Por último, la opción de “Catálogo de acciones” muestra u oculta el cuadro que se encuentra a la derecha en el Generador de Macros, el cual nos muestra todos los comandos posibles de ejecutar en nuestras macros, agrupados por tipos de acciones. La opción de “Mostrar todas las acciones” sirve para mostrar en la lista desplegable de acciones aquellos comandos que no estén permitidos por razones de confianza (seguridad). El Catálogo de acciones es una gran ayuda para diseñar macros, dado que tiene todos los comandos ordenados por grupos de interés para los usuarios, y también nos permite buscar todos los comandos que estén relacionados con algún objeto en específico que el usuario desee modificar; es decir, ayuda a filtrar los comandos. Además, si uno desea seleccionar una acción, todo lo que tiene que hacer es un doble click en ella o arrastrarla a la posición en la macro donde desee el comando.
La última parte del Generador de macros es la ventana donde se diseña la macro en sí, donde nos muestran los comandos más utilizados generalmente en una lista desplegable. En la parte izquierda, se agrupan todos los objetos de la base de datos: tablas, consultas, formularios, informes y, una vez que las hayamos guardado, también las macros.
Ejemplo de una macro
A modo de ejemplo, vamos a hacer una macro que imprima un informe. Para ello, los pasos que ha de seguir la macro son:

  1. Abrir informe
  2. Imprimir
  3. Mensaje de confirmación
  4. Cerrar informe
Entonces, de la lista desplegable de comandos seleccionamos “AbrirInforme”, lo que nos muestra el siguiente cuadro con los argumentos de esta acción:
Seleccionamos el informe de Vendedores. Luego, buscamos el comando “Imprimir” (este comando es un ejemplo de una acción que no es de confianza, por lo que debemos presionar “Mostrar todas las acciones” en la barra de herramientas para que aparezca en el catálogo:
Después, seleccionamos el comando “CuadroDeMensaje” y definimos el mensaje, título y tipo del mensaje que deseamos que salga:
Y por último, cerramos la ventana del informe con “CerrarVentana”, eligiendo la opción de que se guarde automáticamente:

Para poder ejecutar la macro, primero debemos guardarla. El resultado de esta macro debería ser el siguiente (la ventana de atrás es el informe que se imprimió):
Y en la ventana de macros (con la opción “Contraer todo” activada):


Características de las macros
La principal característica de las macros para Access es que se pueden crear de forma individual o independiente (solo una macro como objeto de macro), como un grupo de macros (varias macros relacionadas con un objeto de macro), o como una macro “incrustada”. Este último tipo de macro se incluyó en Access recientemente, y su particularidad es que no se guardan como objetos de macro, sino que se almacenan junto a los formularios, informes, controles, tablas, etc., como una propiedad más de estos objetos. Un ejemplo de macros incrustadas sería una macro que muestre un cuadro de mensaje cuando no existan datos; o también una macro que muestre un porcentaje de avance con respecto a un proyecto, que cambie automáticamente cuando el proyecto pasa de un estado a otro (Enlace de un video que explica este último ejemplo).

Videos

Ejemplo de macro


En este video se explica en más detalle la versión 2010 del generador de macros

Autor
Sebastián Farías Burgos



Referencias

2 comentarios:

  1. Durante el verano pasado tuve que usar Access y la verdad es que se quedaba bastante corto si es que no fuese por las Macros, que una herramienta muy util.

    Yo creo que lo más potente es cuando combinas macros con SQL y usas los resultados de cada consulta como variables en la macro, eso te permite hace un montón de cosas que serían bastante complicadas de hacer o derechamente imposibles sin macros.

    ResponderEliminar
  2. Muy bueno el post. Bien explicado y claro.

    ResponderEliminar