Crear menús personalizados y menús contextuales mediante macros en Access 2007 Puede utilizar macros de Access para crear menús contextuales personalizados que aparezcan al al hacer clic con el botón secundario secundario en formularios, informes o controles individuales. También puede crear menús personalizados que aparezcan en la cinta de formularios o informes específicos. Para crear un menú mediante macros, son necesarios tres pasos principales: 1. Crear Crear un grupo grupo de macros macros para defin definir ir los los coman comandos dos del menú menú.. 2. Crea Crearr otra macr macro o para para constru construir ir el prop propio io menú. menú. 3. Adjun Adjuntar tar el me menú nú a un control, control, un formul formulario, ario, un un informe, informe, o a la base base de datos datos como como un todo. En las secciones siguientes, se explican estos pasos en detalle. Paso 1: Crear un grupo de macros que contenga los comandos del menú En este paso, se crea un grupo de macros, cada una de las cuales será un comando independiente independien te en el menú contextual. ¿Qué es un grupo de macros? Un grupo de macros es un objeto de macro único que contiene dos o más macros independientes. independien tes. Para identificar cada macro, escriba un nombre en la columna Nombre de macro. macro. En la ilustració ilustración n siguiente siguiente,, Macr Macro3 o3 es un grupo grupo de macros. macr os. MsjNo MsjNoEnco Encontrado ntrado y MsjEn MsjEncontr contrado ado son macr macros os indiv individua iduales les den dentro tro del grupo grupo,, y cada una de ellas consta de dos acciones de macro.
NOTA: La columna columna Nombre de macro está oculta oculta de modo predeterminado. predeterminado. Para Para mostrar mostr ar la columna columna Nombre de de macro, macro, en la ficha Dise Diseño, ño, en el grupo grupo Mostra Mostrarr u ocultar, ocultar, haga clic en Nomb Nombres res de mac macro. ro.
1. 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 el botón Módulo de clase y luego haga clic en Macro. 2. En la ficha Diseño, en el grupo Mostrar u ocultar, haga clic en Nombres de Macro para mostrar la columna Nombre de la Macro. 3. Para cada comando que desee agregar al menú contextual personalizado: o En la columna Nombre de macro, escriba el texto que desee que aparezca en el menú contextual (por ejemplo, "Imprimir informe" o "Guardar"). i. NOTA: Si desea crear una tecla de acceso de modo que se pueda elegir el comando con el teclado, escriba el símbolo & delante de la letra que desea designar como tecla de acceso en el nombre del comando (por ejemplo "&Guardar"). Esta letra aparecerá subrayada en el menú. En la columna Acción, seleccione la primera acción que desea que se produzca al hacer o clic en el comando dentro del menú contextual. o Si desea que se ejecuten más acciones al seleccionar este comando, agréguelas en las líneas siguientes. En todas las acciones siguientes, deje vacía la celda Nombre de macro. i. NOTA: Para crear una línea entre dos comandos del menú, escriba un guión (-) en la columna Nombre de macro entre los comandos de menú correspondientes. 4. Guardar y asigne un nombre a la macro, por ejemplo, mcrShortcutMenuCommands. La ilustración siguiente muestra un ejemplo de grupo de macros para un menú personalizado o contextual.
Paso 2: Crear una macro para construir el menú Este paso puede parecer redundante, pero para crear el menú contextual del grupo de macro que ha creado en el paso 1, debe crear una segunda macro que contiene la acción de macro AgregarMenú . Esta macro a veces se denomina "macro de menú". 1. 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 el botón Módulo de clase y luego haga clic en Macro. 2. En la primera línea de la macro, seleccione AgregarMenú en la lista Acción. 3. 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 por si en el paso 3 quisiera agregar el menú a una ficha de la cinta (por ejemplo, la ficha Complementos de un informe o formulario). Si en el paso 3 agrega el menú como menú contextual, el argumento Nombre del menú no se tendrá en cuenta. 4. En el cuadro Nombre de macro de menú, escriba el nombre de la macro creada en el paso 1. 5. Guardar y asigne un nombre a la macro, por ejemplo, mcrAddShortcutMenu.
La ilustración siguiente muestra un ejemplo de macro de menú que crea el menú diseñado en el paso 1.
Paso 3: Adjuntar el menú a un control, formulario, informe o base de datos Según dónde desee que aparezca el menú, siga uno o varios de los procedimientos siguientes. •
Agregar el menú a la ficha Complementos de un formulario o informe Utilice este procedimiento si desea que el menú aparezca en la ficha Complementos de un formulario o informe en particular, como se muestra en la ilustración siguiente:
a. En el panel de navegación, haga clic con el botón secundario en el formulario o el informe donde desea que aparezca el menú y, a continuación, haga clic en Vista Diseño. b. En la pestaña Diseño, en el grupo Mostrar u ocultar, haga clic en Hoja de propiedades. c. Para seleccionar todo el objeto, seleccione Formulario o Informe en la lista que aparece en la parte superior del panel de tareas Hoja de propiedades. d. En la ficha Otras de la hoja de propiedades, en el cuadro de propiedad Menú contextual, escriba el nombre de la macro que creó en el paso 2 (en este ejemplo, “mcrAgregarMenúContextual”). La próxima vez que abra el formulario o informe, la ficha Complementos aparecerá en la cinta. Haga clic en la ficha para ver el menú. Para obtener más información sobre técnicas de personalización de la cinta de opciones, como agregar pestañas personalizadas u ocultar las fichas de forma predeterminada, vea el artículo Personalizar la cinta de opciones. •
Agregar el menú como menú contextual de un formulario, informe o control Utilice este procedimiento si desea que el menú aparezca al hacer clic con el botón secundario en un formulario, informe o control específicos, como se muestra en la ilustración siguiente:
a. En el panel de navegación, haga clic con el botón secundario en el formulario o el informe donde desea que aparezca el menú y, a continuación, haga clic en Vista Diseño. b. En la pestaña Diseño, en el grupo Mostrar u ocultar, haga clic en Hoja de propiedades. c. 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 que aparece en la parte superior del panel de tareas Hoja de propiedades.
•
d. En la ficha Otras de la hoja de propiedades, en el cuadro de propiedad Barra de menús contextuales, escriba el nombre de la macro que creó en el paso 2 (en este ejemplo, “mcrAgregarMenúContextual”). Agregar el menú como 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 vinculado a formularios, informes o controles específicos no se verán afectados. a. Haga clic en el Botón de Microsoft Office y, a continuación, haga clic en Opciones de Access. b. En el cuadro de diálogo Opciones de Access, haga clic en Base de datos actual. c. En Opciones de barra de herramientas y de la cinta de opciones, en el cuadro Barra de menús contextuales, escriba el nombre de la macro que creó en el paso 2 (en este ejemplo, “mcrAgregarMenúContextual”).
NOTA: •
•
•
•
Los menús contextuales personalizados sustituyen a los menús contextuales predeterminados de los objetos a los que se asocien. Si desea conservar algunos comandos de Access para utilizarlos en estos menús, use la acción EjecutarComando para colocar los comandos dentro de los grupos de macros de los menús donde los desee. Un menú contextual personalizado asociado a un control reemplaza cualquier otro menú contextual personalizado definido en la base de datos. Un menú contextual personalizado asociado a un formulario o informe reemplaza un menú contextual global personalizado. Cuando se 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 abre el formulario, el informe o la base de datos. Si se modifica la macro de menú o el grupo de macros que definen sus comandos cuando el formulario, el informe o la base de datos están abiertos, debe cerrar y volver a abrir el formulario, el informe o la base de datos para ver los cambios. Para crear un submenú, siga el paso 1 para crear un grupo de macros independiente que sólo contenga los comandos del submenú. A continuación, siga nuevamente el paso 1 para definir los comandos del menú de nivel superior. Agregue el submenú como un
elemento en el grupo de macros de nivel superior, mediante la acción de macro AgregarMenú. La ilustración siguiente muestra el grupo de macros de un menú que contiene un submenú y, a continuación, muestra el menú contextual resultante. La tercera línea en el grupo de macros crea el submenú Exportar a... (mcrSubMenú).
Puede crear varios niveles de submenús mediante acciones AgregarMenú en los grupos de macros de cada nivel de menú. No olvide suministrar un valor para el argumento Nombre del menú de cada acción AgregarMenú, ya que de lo contrario el submenú aparecerá como una línea vacía en el menú de nivel superior. •
•
Sólo se admiten condiciones en la macro de menú de nivel superior. Dicho de otro modo, puede usar una condición en una macro de menú para determinar si un menú o menú contextual determinados aparecerán, pero solamente para los menús en el nivel superior. No se pueden usar condiciones para mostrar ni ocultar comandos o submenús en los menús. También puede utilizar una condición para mostrar u ocultar un menú contextual personalizado o un menú contextual global. Opcionalmente, la macro de menú que cree en el paso 2 puede ser parte de un grupo de macros. Por ejemplo, si tiene varios menús contextuales para diferentes objetos o controles, puede crear un solo objeto que contiene todas las macros de menú necesarios. Asegúrese de que mostrar la columna Nombre de Macro y escriba un nombre único para cada macro. En el paso 3, utilice la notación siguiente para hacer referencia a la macro: nombreGrupoMacro.nombremacro. Por ejemplo, mcrAddShortcutMenus.AddMenu2 .