Compatibilidad de la Cinta de opciones (Ribbon) hacia atrás, 2007 –> 2003, 2002 (XP), 2000, 97.
Este artículo trata sobre la compatibilidad que puede existir de usar una aplicación que integre Ribbon en versiones anteriores al Access 2007.
No hay compatibilidad, directamente ¡no funciona!, pero se va a tratar de cómo pueden convivir los dos sistemas, Barras de Herramientas Personalizadas y Cinta de Opciones (Ribbon).
Poco más hay que decir sobre el inicio en el Ribbon que no estén en los artículos siguientes,
- Personalizar la cinta de opciones (Ribbon) en http://bengoechea.net/ribbon
- Cambiar de banda de opciones (Ribbon) usando VBA http://geeks.ms/blogs/access/archive/2008/04/06/access-2007-cambiar-de-banda-de-opciones-ribbon-usando-vba.aspx pero ese poco lo voy a comentar yo ante la necesidad de hacer una aplicación compatible entre 2003 y 2007.
Aprovecho para felicitar y promocionar estos artículos, ya que nos hacen ganar en semanas el aprendizaje de esta novedad en Access y avanzar a una velocidad de vértigo.
Necesidad:
Partiendo desde cero con el Ribbon y con una aplicación acabada del 2003, surge la necesidad de usarla en 2007 pero teniendo usuarios que utilizan 2003. Podría pensarse en instalar el Runtime del 2007 ya que es gratuito, pero tampoco quiero hacerlo ya que de ese modo no habría tenido la oportunidad que expongo aquí.
Esta aplicación en 2003 hace uso de 5 barras personalizadas que se activan/desactivan según necesidad del formulario o informe, incluso se habilitan o deshabilitan comandos según requerimientos del contenido del formulario.
En dicha versión todo funciona como cabe esperar, pero al abrir en 2007 las barras de herramienta personalizadas aparecen en el grupo de Complementos junto al resto de grupos predeterminados.
Planteamiento:
- El primer paso fue conocer cómo funciona el XML con el Ribbon (obviaremos en este artículo).
- El siguiente conocer qué instrucción se usa para activar una cinta de opciones usando VBA:
me.RibbonName = «NombreRibbon». Está en el segundo artículo comentado de Chea aunque la verdad 🙁 lo releí tarde.
- El tercero, usar dicha instrucción en Access 2003 y ver qué ocurre.
«Error de compilación: No se encontró el método o el dato miembro». Como era de esperar.
Por el error dado se deduce que es una propiedad del formulario en la versión 2007 y la ayuda dice al respecto:
La propiedad RibbonName con el que se obtiene o establece el nombre de la Cinta de opciones personalizada en un formulario o informe…
La duda que se tenía al principio era si hacía falta tener referenciada la librería de Microsoft 12.0 Object Library (mso.dll) para hacer uso del Ribbon y a este nivel de inicio con el Ribbon no es necesario pero simplemente a este nivel NO sirve para nada ya que sin las Acciones (OnAction) los controles son tan memos como los campos memos.
Solución:
Ante este error no queda más que buscar un método que podamos usar en 2003 y 2007 para poder compilar y crear un archivo 2003.mde, así que buscando buscando se llega a la siguiente conclusión: un formulario tiene propiedades intrínsecas y propiedades definidas por el usuario y todas ellas las encontramos en la colección Properties, por lo que, si usamos esa colección para referirnos a RibbonName, Access 2007 la reconocerá como una propiedad intrínsica y funcionará en consecuencia, mientras que Access 2003 no la reconocerá, pero la tomará como una propiedad personalizada y no producirá problemas; resumiendo que con la sintaxis Me.Properties.Item(«RibbonName») = «NombreRibbon» no se produce error al compilar en 2003 y funciona en 2007.
Me.Properties.Item(«RibbonName») = «NombreRibbon»
Else
‘Usar procedimiento para establecer las barras de herramientas tradicionales.
End If
Ahora llega lo más serio y es volver a mi desconocido Lenguaje de Marcado Extensible el lenguaje XML y montar de nuevo los comandos.
Se adjunta el ejemplo test.Ribbon2007vsBHP2003 donde se demuestra lo expuesto en este artículo.
En este ejemplo también puedes encontrar los siguientes ejemplos,
- Como usar la propiedad Información adicional (Tag) de un control de imagen para cuando, al abrir el formulario, se establezca la imagen según una ruta relativa a la aplicación. Es decir, puedes descargar la aplicación en cualquier ruta que al abrir la imagen que está vincula aparece en el control.
- Al cerrar el formulario de Inicio cómo conocer si la base de datos es MDE, según el valor de la propiedad la aplicación se cerrará o lo hará sólo el formulario.
- Como conocer la versión comercial, versión interna y versión de compilación del Access que está ejecutando la aplicación.
- Como crear una Barra de Herramientas Personalizada para versiones de Access 2003 y anteriores por código, incluso con las imágenes icono que están externas a la aplicación.
McPegasus, 25/04/2008
2 Responsesso far
si tengo una aplicacon en 2003, puede funcionar en el 2007????
consiganme las barras de herramientas de access 2003!!!!!!!!!!!