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.
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.
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.
9 Responsesso far
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!!!
¡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», http://www.microsoft.com/spain/office/rincondelexperto/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 😉
Andaaaaaaaaaaaaaaaaaaaaaaaaa!!!!!!!!!!!!!!!!!!!!!
:))))))))))))))))))))))))))))))
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
Basta con instalar el complemento descargable…para exportar a estos formatos.
hijos de puta
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
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
Este artículo trata sobre la compatibilidad que puede existir de usar una aplicación que