Documente Academic
Documente Profesional
Documente Cultură
http://office.microsoft.com/es-es/access/HA012142023082.aspx?mod...
Ocultar todo En este artculo, se explica el concepto de macro y su utilidad para ahorrar tiempo automatizando tareas que se efectan con frecuencia. Se analizan los conceptos bsicos relacionados con la creacin y el uso de macros y tambin se mencionan mejoras en las macros en Microsoft Office Access 2007.
En este artculo
Qu es una macro? Explicacin de las macros Caractersticas nuevas de las macros en Office Access 2007 Crear una macro Ejecutar una macro
Qu es una macro?
Una macro es una herramienta que permite automatizar tareas y mejorar la funcionalidad de formularios, informes y controles. Por ejemplo, si agrega un botn de comando a un formulario, asocia el evento AlHacerClick del botn a una macro y esta macro contiene los comandos que desea que se ejecuten cada vez que se haga clic en el botn. En Access, resulta til considerar las macros como un lenguaje de programacin simplificado que se escribe generando una lista de acciones (accin: componente bsico de una macro; instruccin independiente que se puede combinar con otras acciones para automatizar tareas. A veces se denomina comando en otros lenguajes de macros.) a realizar. Para generar una macro, seleccionar cada accin en una lista desplegable y luego completar la informacin necesaria para cada accin. Las macros permiten mejorar la funcionalidad de formularios, informes y controles sin escribir cdigo en un mdulo de Visual Basic para Aplicaciones (VBA) (Visual Basic para Aplicaciones (VBA): versin del lenguaje de macros de Microsoft Visual Basic que se utiliza para programar aplicaciones basadas en Microsoft Windows y que se incluye en varios programas de Microsoft.). Las macros proporcionan un subconjunto de los comandos disponibles en VBA y, para la mayora de los usuarios, es ms fcil generar una macro que escribir cdigo de VBA. Por ejemplo, suponga que desea iniciar un informe directamente desde un formulario de entrada de datos. Puede agregar un botn al formulario y, a continuacin, crear una macro que inicie el informe. Puede tratarse de una macro independiente (un objeto independiente en la base de datos), que luego se asocie al evento AlHacerClick del botn, o la macro puede estar incrustada directamente en el propio evento AlHacerClick del botn (una caracterstica nueva en Office Access 2007). De cualquiera de las dos maneras, cuando se haga clic en el botn, la macro se ejecutar e iniciar el informe. Las macros se crean usando el Generador de macros, que se muestra en la siguiente ilustracin.
1 de 12
25-04-2007 8:41
http://office.microsoft.com/es-es/access/HA012142023082.aspx?mod...
Para mostrar el Generador de macros En la ficha Crear, en el grupo Otro, haga clic en Macro. Si el comando no est disponible, haga clic en la flecha debajo del botn Mdulo o Mdulo de clase y, a continuacin, haga clic en Macro. Volver al principio
Nombres de macro
Si un objeto macro slo contiene una macro, no es necesario utilizar nombres de macro. Se puede hacer referencia a la macro por el nombre del objeto. No obstante, en el caso de un grupo de macros, se debe asignar un nombre nico a cada macro. Si la columna Nombre de macro no est visible en el Generador de macros, haga clic en Nombres de macro adelante en este artculo. en el grupo
Mostrar/Ocultar de la ficha Diseo. Encontrar ms informacin sobre la ejecucin de macros en grupos de macros ms
Argumentos
Un argumento es un valor que proporciona informacin para la accin, como la cadena que se debe mostrar en un cuadro de mensaje, el control que se debe operar, etc. Algunos argumentos son necesarios y otros son opcionales. Los argumentos se
2 de 12
25-04-2007 8:41
http://office.microsoft.com/es-es/access/HA012142023082.aspx?mod...
pueden ver en el panel Argumentos de accin, en la parte inferior del Generador de macros.
Una funcin nueva del Generador de macros de Office Access 2007 es la columna Argumentos, que permite ver (pero no editar) los argumentos de una accin en la misma lnea de la accin. De esta forma, es un poco ms fcil leer la macro porque ya no es necesario seleccionar una accin para mostrar los argumentos. Para mostrar la columna Argumentos, haga clic en Argumentos en el grupo Mostrar/Ocultar en la ficha Diseo.
Condiciones
Una condicin especifica ciertos criterios que se deben cumplir para que se pueda realizar una accin. Se puede utilizar cualquier expresin (expresin: cualquier combinacin de operadores matemticos o lgicos, constantes, funciones y nombres de campos, controles y propiedades que evala a un solo valor. Las expresiones puede realizar clculos, manipular caracteres o probar datos.) que pueda dar como resultado True/False o S/No. La accin no se ejecutar si la expresin devuelve como resultado False, No o 0 (cero). Si la expresin devuelve cualquier otro valor, la accin se ejecutar. Para que una condicin pueda controlar ms de una accin, escriba unos puntos suspensivos (...) en la columna Condicin para cada accin subsiguiente que desee que se aplique a la condicin. Si la expresin devuelve False, No o 0 (cero), no se ejecutar ninguna de las acciones. Si la condicin devuelve cualquier otro valor, todas las acciones se ejecutarn. Para mostrar la columna Condiciones en el Generador de macros, en la ficha Diseo, en el grupo Mostrar u ocultar, haga clic en Condiciones .
3 de 12
25-04-2007 8:41
http://office.microsoft.com/es-es/access/HA012142023082.aspx?mod...
Si: Pars es el valor de Ciudad en el campo en el formulario desde el cual se ejecut la macro.
Hay ms de 35 entradas en el campo IdPedido de la tabla Pedidos. Hay ms de tres entradas en la tabla Detalles de pedido para las cuales el campo IdPedido de la tabla coincide con el campo IdPedido del formulario Pedidos.
El valor del campo FechaEnvo del formulario desde el cual se ejecuta la macro no es anterior a 2-Feb-2006 y no es posterior a 2-Mar-2006.
Formularios![Productos]![UnidadesEnStock]<5
El valor del campo UnidadesEnStock del formulario Productos es menor que cinco.
EsNulo([Nombre])
El valor Nombre del formulario desde el que se ejecuta la macro es nulo (Null: valor que puede especificarse en un campo o utilizarse en expresiones o consultas para indicar datos desconocidos o ausentes. En Visual Basic, la palabra clave Null indica un valor Null. Algunos campos, como los de clave principal, no pueden contener Null.) (no tiene valor). Esta expresin es equivalente a [Nombre] Es Nulo.
[PasRegin]="UK" Y Formularios![TotalVentas]![TotalPedidos]>100
El valor en el campo Pas o regin del formulario desde el que se ejecuta la macro es UK, y el valor del campo TotalPedidos del formulario TotalVentas es mayor que 100.
El valor en el campo Pas o regin del formulario desde el cual se ejecuta la macro es Francia, Italia o Espaa y el cdigo postal no es de 5 caracteres de longitud.
CuadroMsj("Confirmar cambios?",1)=1
Se hace clic en Aceptar en un cuadro de dilogo donde la funcin CuadroMsj muestra "Confirmar cambios?". Si hace clic en Cancelar en el cuadro de dilogo, Access omite la accin.
[Variables temporales]![ResultadoCuadroMsj]=2
La variable temporal que se utiliza para almacenar el resultado de un cuadro de mensaje se compara con 2 (vbCancel=2).
SUGERENCIA
Para hacer que Access omita temporalmente una accin, especifique False como condicin. Omitir
temporalmente una accin puede ser de utilidad cuando est tratando de solucionar problemas en una macro.
Acciones de macro
Las acciones son los bloques de creacin para generar las macros. Access proporciona una gran cantidad de acciones entre las que elegir, que habilitan una amplia variedad de comandos. Por ejemplo, algunas de las acciones ms utilizadas sirven para abrir un informe, buscar un registro, mostrar un cuadro de mensaje o aplicar un filtro a un formulario o un informe. Volver al principio
4 de 12
25-04-2007 8:41
http://office.microsoft.com/es-es/access/HA012142023082.aspx?mod...
Macros incrustadas Ahora tiene la posibilidad de incrustar macros en cualquiera de los eventos proporcionados por un formulario, un informe o un control. Una macro incrustada no est visible en el panel de exploracin; pasa a formar parte del formulario, el informe o el control en el que se cre. Si crea una copia de un formulario, un informe o un control que contenga macros incrustadas, las macros tambin estarn presentes en la copia. Mayor seguridad Cuando el botn Mostrar todas las acciones no est resaltado en el Generador de macros,
las nicas acciones de macro y argumentos de EjecutarComando que estn disponibles para el uso son las que no requieren estado de confianza para ejecutarse. Una macro generada con estas acciones se ejecutar aunque la base de datos est en modo deshabilitado (cuando no se permite la ejecucin de VBA). Las bases de datos que contienen acciones de macro no incluidas en la lista de confianza (o las bases de datos que tienen cdigo de VBA) requieren que se les conceda explcitamente el estado de confianza. Tratamiento de errores y depuracin Office Access 2007 proporciona nuevas acciones de macro, como AlOcurrirError (similar a la instruccin "On Error" en VBA) y BorrarErrorDeMacro, que permiten realizar acciones especficas cuando se producen errores durante la ejecucin de la macro. Adems, la nueva accin de macro PasoAPaso permite habilitar el modo paso a paso en cualquier punto de la macro, para que se pueda observar cmo ejecuta la macro las acciones de una en una. Variables temporales Tres nuevas acciones de macro (DefinirVariableTemporal, QuitarVariableTemporal y QuitarTodasLasVariablesTemporales) permiten crear y usar variables temporales en las macros. Pueden utilizarse en expresiones condicionales para controlar la ejecucin de macros, o para pasar datos a informes o formularios, o desde ellos, o para cualquier otro propsito que requiera un almacenamiento temporal para un valor. Tambin se puede tener acceso a estas variables temporales en VBA, por lo que sirven adems para comunicar datos a mdulos de VBA y desde ellos. Volver al principio
5 de 12
25-04-2007 8:41
http://office.microsoft.com/es-es/access/HA012142023082.aspx?mod...
Grupo Herramientas
Descripcin Realiza las acciones enumeradas en la macro. Habilita el modo paso a paso. Cuando se ejecuta la macro en este modo, las acciones se realizan de una en una. Despus de completar cada accin, se muestra el cuadro de dilogo Macro paso a paso. Haga clic en Paso a paso en el cuadro de dilogo para avanzar a la siguiente accin. Haga clic en Detener todas las macros para detener la macro en curso y cualquiera otra que se est ejecutando. Haga clic en Continuar para salir del modo paso a paso y llevar a cabo las acciones restantes sin pararse.
Generador
Si se especifica un argumento de accin que puede contener una expresin, este botn se habilita. Haga clic en Generador para abrir el cuadro de dilogo Generador de expresiones, que puede usar para crear la expresin.
Filas
Inserta una o varias filas de accin en blanco delante de las filas seleccionadas. Elimina las filas de accin seleccionadas.
Mostrar u ocultar
Muestra ms o menos acciones de macro en la lista desplegable Accin. Para mostrar una lista ms larga de acciones de macro, haga clic en Mostrar todas las acciones. Cuando haya una lista ms larga disponible, el botn Mostrar todas las acciones aparecer seleccionado. Si selecciona una accin de macro de esta lista ms larga de acciones de macro, es posible que tenga que conceder a la base de datos un estado de confianza explcita para poder ejecutar la accin. Para cambiar de una lista larga de acciones de macro a una lista corta que contenga nicamente las acciones de macro que puede utilizar en una base de datos sin el estado de confianza asignado, asegrese de que el botn Mostrar todas las acciones no est seleccionado.
SUGERENCIA
haga clic en el botn Mostrar todas las acciones para cancelar la seleccin. Si el botn Mostrar todas las acciones no est seleccionado, la lista ms corta de acciones de macro de confianza est disponible. Nombres de macro Muestra u oculta la columna Nombres de macro. Los nombres de macro son necesarios en los grupos de macros para distinguir unas macros de otras; en los dems casos, los nombres son opcionales. Para obtener ms informacin, vea la seccin Crear un grupo de macros, ms adelante en este artculo. Condiciones Muestra u oculta la columna Condicin. Esta columna se utiliza para escribir expresiones que controlen cundo se realizar una accin. Argumentos Muestra u oculta la columna Argumentos. Esta columna muestra los argumentos para cada accin de macro y permite una lectura ms cmoda de la macro. Si no se muestra la columna Argumentos, tendr que hacer clic en cada accin y leer los argumentos en Argumentos de accin. No se pueden insertar argumentos en la columna Argumentos.
6 de 12
25-04-2007 8:41
http://office.microsoft.com/es-es/access/HA012142023082.aspx?mod...
1. En la ficha Crear, en el grupo Otro, haga clic en Macro. Si el comando no est disponible, haga clic en la flecha debajo del botn Mdulo o Mdulo de clase y, a continuacin, haga clic en Macro. Se muestra el Generador de macros. 2. Agregue una accin a la macro: En el Generador de macros, haga clic en la primera celda en blanco de la columna Accin. Escriba la accin que desea utilizar o haga clic en la flecha para mostrar la lista de acciones (lista de acciones: lista que aparece cuando se hace clic en la flecha de la columna Accin de la ventana Macro.) donde, a continuacin, podr seleccionar la accin que desea usar. En Argumentos de accin, especifique argumentos para la accin, si son necesarios. Para ver una descripcin breve de cada argumento, haga clic en el cuadro del argumento y lea la descripcin que aparece a la derecha del argumento. Sugerencias Para los argumentos de accin (argumento de accin: informacin adicional que requieren algunas acciones de macro, por ejemplo, el objeto al que afecta la accin o condiciones especiales en las que tiene lugar la accin.) cuya configuracin sea un nombre de objeto de base de datos (objetos de base de datos: una base de datos de Access contiene objetos como tablas, consultas, formularios, informes, pginas, macros y mdulos. Un proyecto de Access contiene objetos como formularios, informes, pginas, macros y mdulos.), puede establecer el argumento arrastrando el objeto desde el panel de exploracin hasta el cuadro del argumento Nombre del objeto de la accin. Tambin puede crear una accin arrastrando un objeto de base de datos desde el panel de exploracin hasta una fila vaca del Generador de macros. Si arrastra una tabla, una consulta, un formulario, un informe o un mdulo hasta el Generador de macros, Access agrega una accin que abre la tabla, la consulta, el formulario o el informe. Si arrastra una macro hasta el Generador de macros, Access agrega una accin que ejecuta la macro.
3. Para agregar ms acciones a la macro, muvase a otra fila de accin (fila de accin: fila de la parte superior de la ventana Macro donde se escriben los nombres de macro, acciones, condiciones y comentarios asociados con una macro concreta o un grupo de macros.) y repita el paso 2. Access lleva a cabo las acciones en el orden en que se enumeren. Volver al principio
2. En la ficha Diseo, en el grupo Mostrar u ocultar, haga clic en Nombres de macro todava. Aparece la columna Nombre de macro en el Generador de macros.
si no se ha seleccionado
7 de 12
25-04-2007 8:41
http://office.microsoft.com/es-es/access/HA012142023082.aspx?mod...
NOTA
Los nombres de macro son necesarios en los grupos de macros para distinguir unas macros de otras. El
nombre de macro aparece en la misma lnea que la primera accin de la macro. La columna Nombre de macro se deja en blanco para las siguientes acciones de la macro. La macro finaliza en la siguiente entrada de la columna Nombre de macro. 3. En la columna Nombre de macro, especifique un nombre para la primera macro del grupo de macros. 4. Agregue las acciones que desea que realice la primera macro: En la columna Accin, haga clic en la flecha para presentar la lista de acciones. Haga clic en la accin que desea agregar. En Argumentos de accin, especifique argumentos para la accin, si son necesarios. Para ver una descripcin breve de cada argumento, haga clic en el cuadro del argumento y lea la descripcin que aparece a la derecha del argumento. Sugerencias Para los argumentos de accin cuya configuracin sea un nombre de objeto de base de datos, puede establecer el argumento arrastrando el objeto desde el panel de exploracin hasta el cuadro del argumento Nombre del objeto de la accin. Tambin puede crear una accin arrastrando un objeto de base de datos desde el panel de exploracin hasta una fila vaca del Generador de macros. Si arrastra una tabla, una consulta, un formulario, un informe o un mdulo hasta el Generador de macros, Access agrega una accin que abre la tabla, la consulta, el formulario o el informe. Si arrastra una macro hasta el Generador de macros, Access agrega una accin que ejecuta la macro.
5. Desplcese a la columna Nombre de macro de la siguiente fila vaca y, a continuacin, escriba un nombre para la siguiente macro del grupo de macros. 6. Agregue las acciones que desea que realice la macro. 7. Repita los pasos 5 y 6 para cada macro del grupo.
NOTAS
Si ejecuta un grupo de macros haciendo doble clic en l en el panel de exploracin o haciendo clic en Ejecutar el grupo Herramientas de la ficha Macro, Access slo ejecuta la primera macro y se detiene cuando encuentra el segundo nombre de macro. Cuando guarde el grupo de macros, el nombre que especifique ser el nombre del grupo completo. Este nombre
en
aparece en Macros en el panel de exploracin. Para hacer referencia a una macro individual incluida en un grupo de macros, use esta sintaxis: nombre_de_grupo_de_macros.nombre_de_macro Por ejemplo, Botones.Productos se refiere a la macro Productos en el grupo de macros Botones. En una lista de macros, tal como la lista de argumentos Nombre de macro de la accin EjecutarMacro, Microsoft Access presenta la macro Productos como Botones.Productos. Volver al principio
http://office.microsoft.com/es-es/access/HA012142023082.aspx?mod...
Las macros incrustadas se diferencian de las macros independientes en que las incrustadas se almacenan en las propiedades de evento de formularios, informes o controles. No se muestran como objetos en Macros en el panel de exploracin. De este modo, la base de datos puede resultar ms fcil de administrar, puesto que no hay que realizar un seguimiento de otros objetos macro que contienen macros para un formulario o un informe. Siga este procedimiento para crear una macro incrustada.
NOTA
Las macros incrustadas no se pueden convertir a Visual Basic for Applications (VBA) usando la herramienta Convertir en el grupo Macro de la ficha Herramientas de base de datos. Si desea convertir en ltima
instancia las macros a cdigo VBA, puede resultar adecuado crear macros independientes en lugar de macros incrustadas. Entonces, podr usar la herramienta Convertir macros a Visual Basic para convertirlas a VBA. 1. Abra el formulario o el informe que contendr la macro en la vista Diseo o en la vista Presentacin. Para abrir un formulario o un informe, haga clic con el botn secundario en l en el panel de exploracin y, a continuacin, seleccione Vista Diseo o Vista Presentacin ..
2. Si no se muestra la hoja de propiedades, presione F4. 3. Haga clic en el control o en la seccin que contiene la propiedad de evento en la que desea incrustar la macro. Para seleccionar el formulario o el informe entero, haga clic en Informe en la lista desplegable en la parte superior de la hoja de propiedades. 4. En la hoja de propiedades, haga clic en la ficha Eventos. 5. Haga clic en la propiedad de evento en la que desea incrustar la macro y, a continuacin, seleccione cuadro. 6. En el cuadro de dilogo Elegir generador, haga clic en Generador de macros y despus en Aceptar. 7. En el Generador de macros, haga clic en la primera fila de la columna Accin. 8. En la lista desplegable Accin, haga clic en la accin que desee. 9. Rellene los argumentos necesarios en el panel Argumentos de accin y, a continuacin, vaya desplazndose a la siguiente fila de accin. 10. Repita los pasos del 8 al 9 hasta que la macro se haya completado. 11. Haga clic en Guardar y despus en Cerrar . junto al
Access permite generar un grupo de macros como una macro incrustada. Sin embargo, slo se ejecutar la primera
macro del grupo cuando se desencadene el evento. Las macros subsiguientes se omiten, a no ser que se les llame desde dentro de la propia macro incrustada (por ejemplo, mediante la accin AlOcurrirError).
9 de 12
25-04-2007 8:41
http://office.microsoft.com/es-es/access/HA012142023082.aspx?mod...
6. En el cuadro de dilogo Elegir generador, haga clic en Generador de macros y despus en Aceptar. 7. Especifique las acciones y los argumentos desde la tabla siguiente.
Tenga en cuenta que la tabla precedente muestra los argumentos tal como se presentan en la columna Argumentos. En realidad, se establecen en Argumentos de accin, como se indica en la tabla siguiente.
Argumento de la accin Valor Mensaje Bip Tipo Ttulo No se encontraron registros. S Informacin Sin datos
8. Haga clic en Cerrar. El Generador de macros se cierra y el evento OnNoData muestra [Macro incrustada]. 9. Guarde y cierre el informe. La prxima vez que ejecute el informe y no se encuentren registros, aparecer el cuadro de mensaje. Si hace clic en Aceptar en el cuadro de mensaje, el informe se cancelar sin mostrar la pgina vaca. Volver al principio
Para eliminar una fila de accin Haga clic en la fila de la accin que desea eliminar y, a continuacin, en la ficha Diseo, en el grupo Filas, haga clic en Eliminar filas .
Para mover una fila de accin Seleccione la accin haciendo clic en el selector de filas a la izquierda del nombre de la accin. Arrastre el selector de filas para mover la accin a una nueva posicin. Volver al principio
10 de 12
25-04-2007 8:41
http://office.microsoft.com/es-es/access/HA012142023082.aspx?mod...
accin, haga clic en ella en la lista de acciones y presione F1. Volver al principio
Para abrir la macro en la vista Diseo, haga clic con el botn secundario en ella en el panel de exploracin y, a continuacin, seleccione Vista Diseo .
11 de 12
25-04-2007 8:41
http://office.microsoft.com/es-es/access/HA012142023082.aspx?mod...
Agregue la accin EjecutarMacro a la macro o al procedimiento. Para agregar la accin EjecutarMacro a una macro, haga clic en EjecutarMacro en la lista de acciones en una fila de accin en blanco y, a continuacin, establezca el argumento Nombre de macro en el nombre de la macro que desea ejecutar. Para agregar la accin EjecutarMacro a un procedimiento de VBA, agregue el mtodo RunMacro del objeto DoCmd a su procedimiento y luego especifique el nombre de la macro que desea ejecutar. Por ejemplo, la siguiente instancia del mtodo RunMacro ejecuta la macro denominada My Macro:
DoCmd.RunMacro "My Macro"
12 de 12
25-04-2007 8:41