Puede usar macros de Access para crear menús contextuales personalizados que aparecen al hacer clic con el botón derecho en formularios, informes o controles individuales. También puede crear menús personalizados que aparecen en la cinta de opciones para formularios o informes específicos.
Para crear un menú mediante macros, realice tres pasos principales:
-
Cree un objeto de macro con submacros que contengan los comandos de menú.
-
Cree otro objeto de macro que cree el propio menú.
-
Adjunte el menú a un control, un formulario, un informe o a la base de datos en su conjunto.
Las siguientes secciones le guían por estos pasos en detalle.
Nota: ¿Usa Access 2007? Si es así, vaya a la sección Crear menús contextuales personalizados en Access 2007.
Sugerencia: Si desea obtener información sobre cómo crear menús contextuales personalizados en Access con código Visual Basic para Aplicaciones (VBA), vea el artículo Crear un menú contextual para un formulario, controlde formulario o informe.
Paso 1: Crear un objeto de macro con submacros que contengan los comandos de menú
En este paso, creará un objeto de macro con submacros, cuyo submacro será un comando independiente en el menú contextual.
¿Qué es un submacro?
Puede usar un submacro dentro de un objeto de macro para definir un conjunto de acciones de macro. Los submacros dentro de un objeto de macro se pueden llamar por separado de varios eventos de control y objeto. Los submacros individuales de un objeto de macro tienen un nombre único y pueden contener una o más acciones de macro.
-
En el grupo Macros y código de la pestaña Crear, haga clic en Macro.
-
Para cada comando que desee en el menú contextual personalizado:
-
Agregue una instrucción Macro de Submacro a la ventana de diseño de macros y asigne un nombre al submacro que quiera mostrar en el menú contextual (por ejemplo, "Imprimir" o "Actualizar").
Sugerencia: Para crear una tecla de acceso para que pueda usar el teclado para elegir el comando, escriba una yand (&) antes de la letra que desea que sea la clave de acceso en el nombre del comando (por ejemplo, "&Actualizar"). Esta letra estará subrayada en el menú.
-
Dentro del submacro, seleccione la primera acción que le gustaría realizar al hacer clic en el comando del menú contextual.
-
Si desea realizar más acciones al seleccionar este comando, agrégolas como acciones de macro independientes dentro del mismo submacro.
-
-
Guarde y asigne un nombre al objeto de macro, por ejemplo, mcrShortcutMenuCommands.
En la ilustración siguiente se muestra un objeto de macro de ejemplo con tres submacros para un menú personalizado o un menú contextual.
Paso 2: Crear un segundo objeto de macro que cree el menú
Este paso puede parecer redundante, pero para crear el menú contextual desde el objeto de macro que creó en el paso 1, debe crear un segundo objeto de macro que contenga la acción de macro AddMenu. Esta acción de macro a veces se denomina "macro de menú".
-
En el grupo Macros y código de la pestaña Crear, haga clic en Macro.
-
En el cuadro combinado Agregar nueva acción de la ventana de diseño de macros, seleccione Agregarmenú.
-
En el cuadro de argumento Nombre de menú de la acción de macro Agregarmenú, escriba el nombre del menú (por ejemplo, "Comandos de formulario"). Este argumento no es obligatorio, pero se recomienda si, en el paso 3, tiene previsto agregar el menú a una pestaña de la cinta (como la pestaña Complementos de un formulario o informe). Si el menú se agrega como un menú contextual en el paso 3, se omitirá el argumento Nombre del menú.
-
En el cuadro de argumento Nombre de macro de menú, escriba el nombre del objeto de macro que creó en el paso 1.
-
Guarde y asigne un nombre a este segundo objeto de macro, por ejemplo, mcrAddShortcutMenu.
En la ilustración siguiente se muestra un objeto de macro de menú de ejemplo que crea el menú que hemos diseñado en el paso 1.
Paso 3: Adjuntar el menú a un control, formulario, informe o base de datos
En función de dónde quiera que aparezca el menú, use uno o varios de los procedimientos siguientes.
Agregar el menú a la Add-Ins de un formulario o informe
Use este procedimiento si desea que el menú aparezca en la pestaña Complementos de un formulario o informe específico.
-
En el panel de navegación, haga clic con el botón derecho en el formulario o informe donde quiera que aparezca el menú y, a continuación, haga clic en Vista Diseño.
-
En el grupo Herramientas de la pestaña Diseño, haga clic en Hoja de propiedades.
-
Seleccione todo el objeto seleccionando Formulario o Informe en la lista en la parte superior del panel de tareas Hoja de propiedades.
-
En la pestaña Otros de la hoja de propiedades, en el cuadro de propiedades Barra de menús, escriba el nombre del objeto de macro que creó en el paso 2 (en este ejemplo, "mcrAddShortcutMenu").
-
Guarde el formulario o informe de los cambios.
La próxima vez que abra el formulario o informe, la pestaña Complementos aparecerá en la cinta de opciones. Haga clic en la pestaña para ver el menú, como se muestra en la siguiente ilustración:
Para obtener más información sobre las técnicas de personalización de la cinta, como agregar pestañas personalizadas u ocultar las pestañas predeterminadas, vea el artículo Crear una cinta de opciones personalizada en Access.
Agregar el menú como un menú contextual para un formulario, informe o control
Use este procedimiento si desea que el menú aparezca al hacer clic con el botón derecho en un formulario, informe o control específicos.
-
En el panel de navegación, haga clic con el botón derecho en el formulario o informe donde quiera que aparezca el menú contextual y, a continuación, haga clic en Vista Diseño.
-
En el grupo Herramientas de la pestaña Diseño, haga clic en Hoja de propiedades.
-
Seleccione el control u objeto al que desea adjuntar el menú contextual.
Para seleccionar todo el objeto, seleccione Formulario o Informe en la lista en la parte superior del panel de tareas Hoja de propiedades.
-
En la pestaña Otros de la hoja de propiedades, en el cuadro de propiedades Barra de menús contextuales, escriba el nombre del objeto de macro que creó en el paso 2 (en este ejemplo, "mcrAddShortcutMenu").
-
Asegúrese de que la propiedad Menú contextual está establecida en Sí.
-
Guarde el formulario o informe de los cambios.
La próxima vez que abra el formulario o informe y, después, haga clic con el botón derecho en el formulario, informe o control, verá el menú contextual con los comandos asociados, como se muestra en la siguiente ilustración:
Agregar el menú como un menú contextual global
Este procedimiento reemplaza todos los menús contextuales predeterminados de la base de datos actual. Los menús contextuales personalizados que haya adjuntado a formularios, informes o controles específicos no se verán afectados.
-
Haga clic en Archivo > Opciones.
-
En el cuadro de diálogo Opciones de Access, haga clic en Base de datos activa.
-
En Opciones de cinta de opciones y barra de herramientas , en el cuadro Barra de menús contextuales, escriba el nombre de la macro que creó en el paso 2 (en este ejemplo, "mcrAddShortcutMenu").
-
Haga clic en Aceptar para guardar los cambios en el cuadro de diálogo Opciones de Access.
-
Cierre y vuelva a abrir la base de datos para que los cambios sun efecto.
Los menús contextuales personalizados reemplazan los menús contextuales predeterminados para los objetos a los que están adjuntos. Si desea conservar determinados comandos de Access para usarlos en estos menús, use la acción de macro EjecutarComando para colocar los comandos en los objetos de macro de los menús en los que desee.
Un menú contextual personalizado que se adjunta a un control reemplaza cualquier otro menú contextual personalizado definido en la base de datos. Un menú contextual personalizado que se adjunta a un formulario o informe reemplaza un menú contextual global personalizado.
Al especificar una macro de menú para un formulario o informe o para la base de datos, Access ejecuta esta macro de menú siempre que se abre el formulario, informe o base de datos. Si realiza cambios en el objeto de macro de menú o en el objeto de macro que define sus comandos mientras el formulario, informe o base de datos está abierto, debe cerrar el formulario, informe o base de datos y volver a abrirlo para ver los cambios.
Para crear un submenú en una lista de comandos del menú contextual, siga el paso 1 para crear un objeto de macro independiente que contenga solo los comandos de submenú, como se muestra en la siguiente ilustración:
A continuación, siga el paso 1 de nuevo para definir los comandos para el objeto de menú de nivel superior. Agregue el submenú como un elemento en el objeto de macro de nivel superior mediante la acción de macro Agregarmenú. En la ilustración siguiente se muestra el objeto de macro de un menú que contiene un submenú. El tercer submacro de este objeto de macro de ejemplo crea el submenú Exportar a... (mcrShortcutSubMenuCommands).
En la siguiente ilustración se muestra el menú contextual completado resultante con un submenú:
Puede crear varios niveles de submenús mediante acciones de macro AddMenu en los objetos de macro para cada nivel de menú. Asegúrese de proporcionar un valor para el argumento Nombre del menú para cada acción AgregarMenú, de lo contrario, el submenú aparecerá como una línea en blanco en el menú de nivel superior.
Las condiciones de expresión de macros que usan bloques If/Then/Else solo se admiten en el objeto de macro de menú de nivel superior. En otras palabras, puede usar una expresión de condición en un objeto de macro de menú para determinar si se mostrará un menú o un menú contextual determinados, pero solo para los menús del nivel superior. No puede usar expresiones de condición para mostrar u ocultar comandos o submenús en los menús. También puede usar una expresión de condición para ocultar o mostrar un menú contextual personalizado o un menú contextual global.
Opcionalmente, la macro de menú que cree en el paso 2 puede formar parte de un objeto de macro. Por ejemplo, si tiene varios menús contextuales para diferentes objetos o controles, puede crear un único objeto de macro que contenga todas las macros de menú necesarias. Asegúrese de tener un nombre único para cada submacro. En el paso 3, use la siguiente notación para hacer referencia a la macro: MacroObjectName.SubmacroName. Por ejemplo, mcrAddShortcutMenus.AddMenu2.
Crear menús contextuales personalizados en Access 2007
La ventana de diseño de macros es diferente en Access 2007 en comparación con versiones posteriores, por lo que expanda las siguientes secciones para seguirla si usa Access 2007.
En este paso, creará un grupo de macros, cuya macro será un comando independiente en el menú contextual.
¿Qué es un grupo de macros?
Un grupo de macros es un único objeto de macro que contiene dos o más macros independientes. Las macros individuales se identifican escribiendo un nombre para cada macro en la columna Nombres de macros. En la siguiente ilustración, Macro3 es un grupo de macros. NotFoundMsg y FoundMsg son macros individuales dentro del grupo, cada macro que consta de dos acciones de macro.
Nota: La columna Nombre de macro está oculta de forma predeterminada. Para mostrar la columna Nombre de macro, en la pestaña Diseño, en el grupo Mostrar u ocultar, haga clic en Nombres de macros.
-
En el grupo Otros de la pestaña Crear, haga clic en Macro. Si el comando no está disponible, haga clic en la flecha que aparece bajo los botones Módulo o Módulo de clase y luego haga clic en Macro.
-
En la pestaña Diseño, en el grupo Mostrar u ocultar, haga clic en Nombres de macros para mostrar la columna Nombre de la macro.
-
Para cada comando que desee en el menú contextual personalizado:
-
En la columna Nombre de macro, escriba el texto que desea mostrar en el menú contextual (por ejemplo, "Imprimir informe" o "Guardar").
-
Nota: Para crear una tecla de acceso para que pueda usar el teclado para elegir el comando, escriba una yand (&) antes de la letra que desea que sea la clave de acceso en el nombre del comando (por ejemplo, "&Guardar"). Esta letra estará subrayada en el menú.
-
-
En la columna Acción, seleccione la primera acción que le gustaría realizar al hacer clic en el comando del menú contextual.
-
Si hay más acciones que desea realizar al seleccionar este comando, agrégrelas en las líneas siguientes. Para cada acción posterior, deje la celda Nombre de la macro en blanco.
-
Nota: Para crear una línea entre dos comandos de menú, escriba un guión (-) en la columna Nombre de macro entre los comandos de menú adecuados.
-
-
-
Guarde y asigne un nombre a la macro, por ejemplo, mcrShortcutMenuCommands.
En la siguiente ilustración se muestra un grupo de macros de ejemplo para un menú personalizado o un menú contextual.
Este paso puede parecer redundante, pero para crear el menú contextual desde el grupo de macros que creó en el paso 1, debe crear una segunda macro que contenga la acción de macro Agregarmenú. Esta macro a veces se denomina "macro de menú".
-
En el grupo Otros de la pestaña Crear, haga clic en Macro. Si el comando no está disponible, haga clic en la flecha que aparece bajo los botones Módulo o Módulo de clase y luego haga clic en Macro.
-
En la primera línea de la macro, seleccione AgregarMenú en la lista Acción.
-
En Argumentos de acción, en el cuadro Nombre del menú, escriba el nombre del menú (por ejemplo, "Comandos de informe"). Este argumento no es obligatorio, pero se recomienda si, en el paso 3, tiene previsto agregar el menú a una pestaña de la cinta (como la pestaña Complementos de un formulario o informe). Si el menú se agrega como un menú contextual en el paso 3, se omitirá el argumento Nombre del menú.
-
En el cuadro Nombre de macro de menú, escriba el nombre de la macro que creó en el paso 1.
-
Guarde y asigne un nombre a la macro, por ejemplo, mcrAddShortcutMenu.
En la ilustración siguiente se muestra una macro de menú de ejemplo que crea el menú que hemos diseñado en el paso 1.
En función de dónde quiera que aparezca el menú, use uno o varios de los procedimientos siguientes.
-
Agregar el menú a la Add-Ins de un formulario o informe
Use este procedimiento si desea que el menú aparezca en la pestaña Complementos de un formulario o informe específico, como se muestra en la siguiente ilustración:
-
En el panel de navegación, haga clic con el botón derecho en el formulario o informe donde quiera que aparezca el menú y, a continuación, haga clic en Vista Diseño.
-
En la pestaña Diseño, en el grupo Mostrar u ocultar, haga clic en Hoja de propiedades.
-
Seleccione todo el objeto seleccionando Formulario o Informe en la lista en la parte superior del panel de tareas Hoja de propiedades.
-
En la pestaña Otros de la hoja de propiedades, en el cuadro de propiedades Menú contextual, escriba el nombre de la macro que creó en el paso 2 (en este ejemplo, "mcrAddShortcutMenu").
La próxima vez que abra el formulario o informe, la pestaña Complementos aparecerá en la cinta de opciones. Haga clic en la pestaña para ver el menú.
Para obtener más información sobre las técnicas de personalización de la cinta, como agregar pestañas personalizadas u ocultar las pestañas predeterminadas, vea el artículo Crear una cinta de opciones personalizada en Access.
La cinta de opciones es un componente de la interfaz de usuario de Microsoft Office Fluent.
-
-
Agregar el menú como un menú contextual para un formulario, informe o control
Use este procedimiento si desea que el menú aparezca al hacer clic con el botón derecho en un formulario, informe o control específicos, como se muestra en la siguiente ilustración:
-
En el panel de navegación, haga clic con el botón derecho en el formulario o informe donde quiera que aparezca el menú contextual y, a continuación, haga clic en Vista Diseño.
-
En la pestaña Diseño, en el grupo Mostrar u ocultar, haga clic en Hoja de propiedades.
-
Seleccione el control u objeto al que desea adjuntar el menú contextual.
Nota: Para seleccionar todo el objeto, seleccione Formulario o Informe en la lista en la parte superior del panel de tareas Hoja de propiedades.
-
En la pestaña Otros de la hoja de propiedades, en el cuadro de propiedades Barra de menús contextuales, escriba el nombre de la macro que creó en el paso 2 (en este ejemplo, "mcrAddShortcutMenu").
-
-
Agregar el menú como un menú contextual global
Este procedimiento reemplaza todos los menús contextuales predeterminados de la base de datos actual. Los menús contextuales personalizados que haya adjuntado a formularios, informes o controles específicos no se verán afectados.
-
Haga clic en el Microsoft Office y, a continuación, haga clic en Opciones de Access.
-
En el cuadro de diálogo Opciones de Access, haga clic en Base de datos activa.
-
En Opciones de cinta de opciones y barra de herramientas , en el cuadro Barra de menús contextuales, escriba el nombre de la macro que creó en el paso 2 (en este ejemplo, "mcrAddShortcutMenu").
-
-
Los menús contextuales personalizados reemplazan los menús contextuales predeterminados para los objetos a los que están adjuntos. Si desea conservar determinados comandos de Access para usarlos en estos menús, use la acción EjecutarComando para colocar los comandos en los grupos de macros de los menús en los que desee.
-
Un menú contextual personalizado que se adjunta a un control reemplaza cualquier otro menú contextual personalizado definido en la base de datos. Un menú contextual personalizado que se adjunta a un formulario o informe reemplaza un menú contextual global personalizado.
-
Al especificar una macro de menú para un formulario o informe o para la base de datos, Access ejecuta esta macro de menú siempre que se abre el formulario, informe o base de datos. Si realiza cambios en la macro de menú o en el grupo de macros que define sus comandos mientras el formulario, informe o base de datos está abierto, debe cerrar el formulario, informe o base de datos y volver a abrirlo para ver los cambios.
-
Para crear un submenú, siga el paso 1 para crear un grupo de macros independiente que contenga solo los comandos de submenú. A continuación, siga el paso 1 de nuevo para definir los comandos del menú de nivel superior. Agregue el submenú como elemento en el grupo de macros de nivel superior mediante la acción de macro Agregarmenú. En la ilustración siguiente se muestra el grupo de macros de un menú que contiene un submenú y, a continuación, se muestra el menú contextual resultante. La tercera línea del grupo de macros crea el submenú Exportar a... (mcrSubMenu).
Puede crear varios niveles de submenús mediante acciones de AddMenu en los grupos de macros para cada nivel de menú. Asegúrese de proporcionar un valor para el argumento Nombre del menú para cada acción AgregarMenú, de lo contrario, el submenú aparecerá como una línea en blanco en el menú de nivel superior.
-
Las condiciones de macro solo se admiten en la macro del menú de nivel superior. En otras palabras, puede usar una condición en una macro de menú para determinar si se mostrará un menú o un menú contextual determinados, pero solo para los menús del nivel superior. No puede usar condiciones para mostrar u ocultar comandos o submenús en los menús. También puede usar una condición para ocultar o mostrar un menú contextual personalizado o un menú contextual global.
-
Opcionalmente, la macro de menú que cree en el paso 2 puede formar parte de un grupo de macros. Por ejemplo, si tiene varios menús contextuales para diferentes objetos o controles, puede crear un único objeto de macro que contenga todas las macros de menú necesarias. Asegúrese de mostrar la columna Nombre de la macro y escriba un nombre único para cada macro. En el paso 3, use la siguiente notación para hacer referencia a la macro: macrogroupname.macroname. Por ejemplo, mcrAddShortcutMenus.AddMenu2.