Access
  • Home

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

  • By chea
  • Abr-6-2008
  • Sin categoría
  • 9 Comments.

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.

Comments

9 Responsesso far

  1. anonymous dice:
    6 abril, 2008 a las 12:06 pm

    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!!!

    Responder
  2. chea dice:
    6 abril, 2008 a las 9:36 pm

    ¡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 😉

    Responder
  3. anonymous dice:
    7 abril, 2008 a las 8:08 am

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

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

    Responder
  4. anonymous dice:
    6 junio, 2008 a las 8:20 pm

    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

    Responder
  5. anonymous dice:
    27 marzo, 2009 a las 1:15 pm

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

    Responder
  6. anonymous dice:
    16 diciembre, 2009 a las 12:06 am

    hijos de puta

    Responder
  7. anonymous dice:
    21 febrero, 2010 a las 9:53 pm

    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

    Responder
  8. anonymous dice:
    13 mayo, 2011 a las 6:26 pm

    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

    Responder
  9. anonymous dice:
    27 febrero, 2013 a las 4:20 pm

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

    Responder

Deja un comentario Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

← Previous Post Next Post →

Categories

  • Sin categoría

Search:

Archives

  • mayo 2016
  • abril 2016
  • marzo 2016
  • enero 2016
  • diciembre 2015
  • julio 2015
  • junio 2015
  • mayo 2015
  • abril 2015
  • marzo 2015
  • febrero 2015
  • enero 2015
  • diciembre 2014
  • noviembre 2014
  • septiembre 2014
  • agosto 2014
  • junio 2014
  • mayo 2014
  • abril 2014
  • febrero 2013
  • mayo 2011
  • octubre 2010
  • enero 2010
  • junio 2009
  • mayo 2009
  • febrero 2009
  • enero 2009
  • diciembre 2008
  • noviembre 2008
  • octubre 2008
  • agosto 2008
  • junio 2008
  • mayo 2008
  • abril 2008
  • marzo 2008
  • enero 2008
  • octubre 2007
  • septiembre 2007
  • julio 2007
  • junio 2007
  • mayo 2007
  • abril 2007
About This Site

A cras tincidunt, ut tellus et. Gravida scel ipsum sed iaculis, nunc non nam. Placerat sed phase llus, purus purus elit.

Archives Widget
  • January 2010
  • December 2009
  • November 2009
  • October 2009
Categories
  • Entertainment
  • Technology
  • Sports & Recreation
  • Jobs & Lifestyle
Search

Powered by WordPress  |  Business Directory by InkThemes.

This site uses cookies: Find out more.