Crear menús personalizados y menús contextuales mediante macros

Se aplica a
Access para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Puede usar las macros de Access para crear menús contextuales personalizados que aparecen al hacer clic con el botón secundario 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, siga tres pasos principales:

  1. Cree un objeto de macro con submacros que contengan los comandos de menú.
  2. Cree otro objeto de macro que cree el propio menú.
  3. Adjunte el menú a un control, un formulario, un informe o a la base de datos en su conjunto.

Las siguientes secciones le guiarán a través de estos pasos en detalle.

Recomendación

Si quiere obtener información sobre cómo crear menús contextuales personalizados en Access usando código de Visual Basic para Aplicaciones (VBA), vea el artículo Crear un menú contextual para un formulario, un control de formulario o un 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, cada submacro de los cuales será un comando independiente en el menú contextual.

¿Qué es una submacro?

Puede usar una submacro dentro de un objeto de macro para definir un conjunto de acciones de macro. Las submacros dentro de un objeto macro se pueden llamar por separado de varios eventos de control y objeto. Las submacros individuales de un objeto de macro tienen un nombre único y pueden contener una o varias acciones de macro.

  1. En el grupo Macros y código de la pestaña Crear, haga clic en Macro.

  2. Para cada comando que desee en el menú contextual personalizado:

    1. Agregue una instrucción Submacro Macro a la ventana de diseño de macros y asigne al submacro el nombre que quiera mostrar en el menú contextual (por ejemplo, "Imprimir" o "Actualizar").

      Recomendación

      Para crear una tecla de acceso con el fin de usar el teclado para elegir el comando, escriba un comercial (&) delante de la letra que desee que sea la tecla de acceso en el nombre del comando (por ejemplo, "&Refresh"). Esta carta se subrayará en el menú.

    2. En la submacro, seleccione la primera acción que desea que tenga lugar al hacer clic en el comando en el menú contextual.

    3. Si desea que se realicen más acciones al seleccionar este comando, agréguelas como acciones de macro independientes dentro de la misma submacro.

  3. 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.
    Captura de pantalla de la ventana de diseño de macro de Access con tres instrucciones de submacro.

Paso 2: Crear un segundo objeto de macro que cree el menú

Este paso puede parecer redundante, pero para crear el menú contextual a partir del 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ú".

  1. En el grupo Macros y código de la pestaña Crear, haga clic en Macro.
  2. En el cuadro combinado Agregar nueva acción de la ventana de diseño de macros, seleccione Agregar menú.
  3. En el cuadro de argumento Nombre del menú de la acción de macro AddMenu , 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 de opciones (como la pestaña Complementos de un formulario o informe). Si el menú se agrega como menú contextual en el paso 3, se omite el argumento Nombre del menú .
  4. En el cuadro de argumento Nombre de macro de menú , escriba el nombre del objeto de macro que creó en el paso 1.
  5. Guarde y asigne un nombre a este segundo objeto de macro, por ejemplo, mcrAddShortcutMenu.
    La siguiente ilustración muestra un objeto de macro de menú de ejemplo que crea el menú que diseñamos en el Paso 1.
    Captura de pantalla de un objeto de macro de Access con una acción de macro AddMenu.

Paso 3: Adjuntar el menú a un control, formulario, informe o base de datos

En función de dónde desee que aparezca el menú, use uno o varios de los procedimientos siguientes.

Agregar el menú a la pestaña 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.

  1. En el panel de navegación, haga clic con el botón secundario en el formulario o informe donde desee que aparezca el menú y, después, haga clic en Vista Diseño.
  2. En el grupo Herramientas de la pestaña Diseño, haga clic en Hoja de propiedades.
  3. Seleccione todo el objeto seleccionando Formulario o Informe en la lista de la parte superior del panel de tareas Hoja de propiedades.
  4. En la pestaña Otros de la hoja de propiedades, en el cuadro de propiedades de la barra de menús , escriba el nombre del objeto de macro que creó en el paso 2 (en este ejemplo, "mcrAddShortcutMenu").
  5. Guarde los cambios del formulario o informe.
    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:
    Captura de pantalla de la cinta de complementos en Access
    Para obtener más información sobre las técnicas de personalización de la cinta de opciones, 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 menú contextual de un formulario, informe o control

Use este procedimiento si desea que el menú aparezca al hacer clic con el botón secundario en un formulario, informe o control específico.

  1. En el panel de navegación, haga clic con el botón secundario en el formulario o informe donde quiera que aparezca el menú contextual y, después, haga clic en Vista Diseño.
  2. En el grupo Herramientas de la pestaña Diseño, haga clic en Hoja de propiedades.
  3. Seleccione el control o el objeto al que quiere adjuntar el menú contextual.
    Para seleccionar todo el objeto, seleccione Formulario o Informe en la lista de la parte superior del panel de tareas Hoja de propiedades.
  4. En la pestaña Otros de la hoja de propiedades, en el cuadro de propiedades de la barra de menús contextuales , escriba el nombre del objeto de macro que creó en el paso 2 (en este ejemplo, "mcrAddShortcutMenu").
  5. Asegúrese de que la propiedad del menú contextual está establecida en Sí.
  6. Guarde los cambios del formulario o informe.
    La próxima vez que abra el formulario o informe y, a continuación, haga clic con el botón secundario en él, informe o control, verá el menú contextual con los comandos asociados, como se muestra en la siguiente ilustración:
    Captura de pantalla de un menú contextual en un formulario de Access

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.

  1. Haga clic enOpcionesde archivo>.
  2. En el cuadro de diálogo Opciones de Access, haga clic en Base de datos activa.
  3. En Opciones de la cinta de opciones y de la barra de herramientas, en el cuadro de la barra de menús contextuales , escriba el nombre de la macro que creó en el paso 2 (en este ejemplo, "mcrAddShortcutMenu").
  4. Haga clic en Aceptar para guardar los cambios en el cuadro de diálogo Opciones de Access .
  5. Cierre y vuelva a abrir la base de datos para que los cambios surtan efecto.

Los menús contextuales personalizados reemplazan los menús contextuales predeterminados de los objetos a los que están conectados. Si desea conservar ciertos comandos de Access para usarlos en estos menús, use la acción de macro RunCommand para colocar los comandos en los objetos de macro de los menús en los que los desea.

Un menú contextual personalizado que se adjunta a un control reemplaza a cualquier otro menú contextual personalizado definido en la base de datos. Un menú contextual personalizado que se adjunta a un formulario o informe reemplaza a un menú contextual global personalizado.

Cuando especifica una macro de menú para un formulario o un informe o para la base de datos, Access ejecuta esta macro de menú siempre que se abra el formulario, el informe o la 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 de menú contextual, siga el Paso 1 para crear un objeto de macro independiente que contenga solo los comandos del submenú, como se muestra en la siguiente ilustración:

Captura de pantalla de una macro en Access con dos submacros

A continuación, siga el paso 1 de nuevo para definir los comandos del 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 AddMenu . En la ilustración siguiente se muestra el objeto de macro de un menú que contiene un submenú. La tercera submacro de este objeto de macro de ejemplo crea el submenú Exportar a... (mcrShortcutSubMenuCommands).

Captura de pantalla de una macro de Access con cuatro submacros

En la ilustración siguiente se muestra el menú contextual completado resultante con un submenú:

Captura de pantalla de un menú contextual 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 AddMenu ; de lo contrario, el submenú aparecerá como una línea en blanco en el menú de nivel superior.

Las condiciones de expresión de macro que usan bloques If/Then/Else solo se admiten en el objeto macro del 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 menú contextual determinado, 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 distintos 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.

Principio de página