Access 2007. Cambiar de banda de opciones (Ribbon) usando VBA

Cargar las bandas de opciones

Las distintas bandas de opciones, o "Ribbons", que se vayan a usar en una aplicación deberían cargarse todas al arrancar la aplicación y luego, sobre la marcha, ir cambiando de unas a otras. Podemos usar el método LoadCustomUI, compartido con otras aplicaciones de Office, para cargar los distintos Ribbons, pero si los tenemos guardados en una tabla UsysRibbons (específica de Access)  es innecesario, pues Access al abrirse se encarga de cargarlos. Por tanto, salvo que existe algún motivo muy especial en sentido contrario, la mejor opción para guardar una cinta de opciones en Access es en una tabla UsysRibbons.

Asignar las bandas de opciones a formularios, informes y aplicación

Ribbon genérico y Ribbons contextuales

Los Ribbons van asociados bien a la aplicación, bien a un formulario o informe. En el primer caso, hablamos de un Ribbon genérico y en los otros dos, de Ribbons contextuales, tanto una como los otros, tienen propiedades específicas para indicar cuál es la cinta de opciones que le corresponde.

Propiedades para asignar la banda de opciones

En el caso de los contextuales en formularios e informes, la propiedad es "Nombre de la banda de opciones", en VBA Form.RibbonName o Report.RibbonName, y la encontramos cercar del final de la lista de propiedades del formulario o informe.

image

En el Ribbon genérico de la base de datos, la propiedad sería CurrentDb.Properties("CustomRibbonID") en VBA, pero la podemos asignar directamente pulsando el Botón de Office|Opciones de Access|Base de datos actual|Nombre de la banda de opciones.

image

Cambiar de banda de opciones

El Ribbon contextual de formularios o informes se puede cambiar sobre la marcha, pero el genérico, el de la aplicación, se asigna al arrancar ésta. Aunque cambiemos la propiedad CustomRibbonID, esto no tendrá efecto hasta que cerremos y volvamos a abrir la aplicación.

Por el contrario, el Ribbon contextual de formularios o informes se puede cambiar sobre la marcha, aunque debe estar cargado previamente. Basta con decir

me.RibbonName = "NombreRibbon"

para cambiar éste. Sin embargo, son pocas las ocasiones en que puede ser necesario cambiar el Ribbon una vez abierto el formulario o informe y, lo habitual es que esté asociado a ellos, por lo que es suficiente con que la propiedad "Nombre de la banda de opciones" tenga asignado un valor para que, al recibir el foco el formulario o informe, cambie el Ribbon al indicado en esta propiedad.

Combinar bandas de opciones o hacer que se muestren solas

Los Ribbons contextuales de nuestros formularios o informes se mostrarán, normalmente combinados con el Ribbon genérico de nuestra aplicación y con los Ribbons propios de Access.

Nuestros Ribbons pueden mostrarse combinados con los Tabs de los Ribbons propios de Access (Inicio, Diseño, Herramientas...). Esto puede parecer cómodo en un primer momento, pues nos muestra opciones contextuales sin obligarnos a diseñar nada, pero luego nos damos cuenta de que puede estar mostrándonos opciones que no deseamos mostrar y que otras, que pueden resultar útiles, no se mostrarán cuando usemos la Runtime.

Mostrar sólo las bandas de opciones personalizadas

Evitar que se muestren otros Ribbons que los nuestros personalizados, es bien sencillo: En el texto XML correspondiente a nuestra cinta de opciones, damos valor verdadero a la propiedad StarFromScratch:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
    <ribbon startFromScratch="true">

Si la aplicación tiene asignado un Ribbon genérico, éste se combinará con los contextuales de formularios e informes si es que existen y, si no existen, será el predeterminado.

Mostrar sólo la banda de opciones del objeto que tiene el foco

Si al entrar en un formulario o informe, queremos que sólo se muestre el Ribbon asignado en la propiedad "Nombre de banda de opciones", RibbonName, basta con dejar en blanco la propiedad de la aplicación CustomRibbonID que hemos visto que podíamos asignar en Botón de Office|Opciones de Access|Base de datos actual|Nombre de la banda de opciones.

Si queremos no usar una cinta de opciones para la aplicación y, sin embargo, que los distintos Ribbons contextuales de los formularios compartan opciones en común, tendremos que copiar en pegar en cada uno de ellos el conjunto de Tabs, grupos o controles que queremos que compartan.

Published 6/4/2008 10:50 por Chea
Archivado en:
Comparte este post:

Comentarios

# re: Access 2007. Cambiar de banda de opciones (Ribbon) usando VBA

Sunday, April 6, 2008 12:06 PM por La Evas

Ups, el Chea lanzando un guante...

Pues seré yo la primera :) me está encantando vuestra iniciativa, pero me quedo con ganas... 2 posts al mes... ay....

Seguro que tenéis ya muchos truquis escondidos en la manga!!!

# re: Access 2007. Cambiar de banda de opciones (Ribbon) usando VBA

Sunday, April 6, 2008 9:36 PM por Chea

¡Hombre, la Evas! :)

Pues estamos aprendiendo, así que muchos-muchos truquis pues todavía no tenemos :-(

Pero tranquila, que enseguida voy a pegar aquí los últimos artículos de "El rincón de experto", www.microsoft.com/.../default1.mspx y seguro que se ve un poco más lleno.

Además, está mi nueva página http://jbchea.net, que seguro que todavía no has mirado, pues me habrías hecho algún comentario sobre http://jbchea.net/amigos.aspx ;)

# re: Access 2007. Cambiar de banda de opciones (Ribbon) usando VBA

Monday, April 7, 2008 8:08 AM por la Evas

Andaaaaaaaaaaaaaaaaaaaaaaaaa!!!!!!!!!!!!!!!!!!!!!

:))))))))))))))))))))))))))))))

# re: Access 2007. Cambiar de banda de opciones (Ribbon) usando VBA

Friday, June 6, 2008 8:20 PM por QuePacha

HOla,

pero... en un CCDE o CCDR, en los informes, no aparece la opción de Exportar a otros formatos como Word, Excel, PDF, ... ¿Cómo se puede hacer para que los muestre?

Salu2

# re: Access 2007. Cambiar de banda de opciones (Ribbon) usando VBA

Friday, March 27, 2009 1:15 PM por Jairo Rey

Basta con instalar el complemento descargable...para exportar a estos formatos.

# re: Access 2007. Cambiar de banda de opciones (Ribbon) usando VBA

Wednesday, December 16, 2009 12:06 AM por rogerc_2004@hotmail.com

hijos de ***

# AYUDA URGENTE

Sunday, February 21, 2010 9:53 PM por Silvia

Hola necesito ayuda!!!!  tengo un formulario dado en el trabajo y tengo que agregarle nuevos campos. Uno con varias opciones, otro con la opción de si/no y no me sale bien. ¿alguien me puede ayudar?

También tengo que arreglar otro campo en el que había dos opciones cada una con una valor: 1 y 2 y ahora tengo que añadir una tercera con el valor 3 y no me deja.

Please, ayuda. Gracias

# re: Access 2007. Cambiar de banda de opciones (Ribbon) usando VBA

Friday, May 13, 2011 6:26 PM por rnr

Esta muy bueno los aportes.como inactivo un boton de una cinta desde un boton comado de un formulario.

que evento en vba sirve o qué alternativa hay que seguir

# Compatibilidad de la Cinta de opciones (Ribbon) hacia atrás, 2007 --> 2003, 2002 (XP), 2000, 97.

Wednesday, February 27, 2013 4:20 PM por Access

Este artículo trata sobre la compatibilidad que puede existir de usar una aplicación que