** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Ribbon XML
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoRibbon XML

 Responder Responder
Autor
Mensaje
gabores Ver desplegable
Habitual
Habitual
Avatar

Unido: 06/Agosto/2007
Localización: Bolivia
Estado: Sin conexión
Puntos: 123
Enlace directo a este mensaje Tema: Ribbon XML
    Enviado: 10/Julio/2020 a las 05:20
Hola a todos.

Buscando por la Web he dado con algunos ejemplos para la creación de Ribbons con XML que me han resultado muy interesantes .. desde lo funcional como desde lo estético.
XML es un mundo desconocido para mi y lo que logré fue gracias a tutoriales.
El problema es que quisiera tener la posibilidad de habilitar y deshabilitar algunos botones en función de datos que tengo en el formulario y he estado dos días navegando la web y no encuentro nada que me oriente con este tema.

la linea que utilizo en XML para el botón de la Ribbon es 

     <button id="btn_caja_02_0501" supertip="****" label="COMPROBANTES " imageMso="PropertySheet" onAction="funciones" enabled="false"/>

con esto logro que al abrir el formulario el botón COMPROBANTES aparezca deshabilitado y me seria de mucha utilidad que una vez abierto el formulario al cambiar un dato de un campo específico ese botón de la Ribbon se habilitara automáticamente.

Alguien tiene una idea de como hacer esto?

Desde ya muchas gracias.






Editado por gabores - 12/Julio/2020 a las 17:13
Arriba
emiliove Ver desplegable
Administrador
Administrador


Unido: 16/Junio/2009
Localización: Mexico
Estado: Sin conexión
Puntos: 5694
Enlace directo a este mensaje Enviado: 10/Julio/2020 a las 16:34
Hola Gabores
Hay mucha información del ribbon, para que un botón cambie de estado necesitas que las propiedades sean dinámicas y por desgracia enabled es estática, debes de usar getEnable para poder hacer que en tiempo de ejecución cambien de estado.
En Realidad el lenguaje del ribbon es XML, un ejemplo de como hacerlo:


Saludos.
Arriba
gabores Ver desplegable
Habitual
Habitual
Avatar

Unido: 06/Agosto/2007
Localización: Bolivia
Estado: Sin conexión
Puntos: 123
Enlace directo a este mensaje Enviado: 12/Julio/2020 a las 09:03
Hola emilio.. muchas gracias por tu respuesta.

Te cuento que descargue y mire los ejemplos del link que me sugeriste pero debo decirte que es demasiado para mi... muchas veces no aclaro que soy un autodidacta de access y que lo que voy logrando lo hago con mucha búsqueda, tutoriales y la ayuda de muchos de uds.

Los ejemplos eran maravillosos pero imposibles de ejecutar para mi ya que no sabía que extraer de tanto código para lo que yo necesitaba y fracase en todos los intentos.
Seguí hasta ahora buscando sin parar y llegue a un video en youtube donde se explicaba bastante mas sencillo y lo seguí al pie de la letra pero me encuentro estancado ya que me da un error y quisiera saber si alguien tiene una idea de por que puede ser.

Antes que nada te cuento que mi ribbon esta creada y carga perfectamente.
La ribbon tiene un botón "Comprobantes" que quiero que se habilita o inhabilite de acuerdo a un dato del formulario.

Te cuento que llegue a esto...
--------------------------------------
en  XML referencio en onLoad mi modulo
--------------------------------------
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="mdl_ribbon.estadoboton">

------------------------------------------
en  XML referencio en getEnabled mi modulo
------------------------------------------
<button id="btn_caja_02_0501" supertip="****" label="Comprobantes" getEnabled="mdl_ribbon.activardesactivarboton" onAction="funciones" />

--------------------------
y mi modulo se compone asi
--------------------------
Option Compare Database
Public MiRibbon As IRibbonUI

Public Sub estadoboton(ribbon As IRibbonUI)
    Set MiRibbon = ribbon
End Sub

Public Sub activardesactivarboton(control As IRibbonControl, ByRef enabled)
    If Forms!frm_caja_2!caja_gestion_id = 1 Then
        enabled = False
    Else
        enabled = True
    End If
End Sub

--------------------------------------------------------------------------------------------
luego en el formulario al que esta aplicada la Ribbon tengo un botón con este procedimiento
--------------------------------------------------------------------------------------------

Private Sub Comando1102_Click()
    MiRibbon.InvalidateControl ("btn_caja_02_0501")
End Sub

Todo esto en el ejemplo que vi en la web aparentemente funcionaba pero en mi caso cuando hago click en el botón me aparece el siguiente error

------------------------------------------------
ERROR 91 en tiempo de ejecucion

Variable de objeto o bloque With no establecido
-----------------------------------------------

llevo lo que he tardado en responderte lidiando con esto y tratando de entender que es lo que hago mal pero fracasé en todos los intentos.
Alguna idea de que estoy haciendo mal... me asombra que el ejemplo que vi en la web (literalmente una clase de 30 minutos de ribbon XML esto funcionaba y a mi no me funciona)

Desde ya muchas gracias 
Arriba
emiliove Ver desplegable
Administrador
Administrador


Unido: 16/Junio/2009
Localización: Mexico
Estado: Sin conexión
Puntos: 5694
Enlace directo a este mensaje Enviado: 13/Julio/2020 a las 18:22
Quizás podrías subir tu base solo con tu ribbon y el formulario en cuestión puede ser simplificado ambos para mirarlo.

Saludos.
Arriba
gabores Ver desplegable
Habitual
Habitual
Avatar

Unido: 06/Agosto/2007
Localización: Bolivia
Estado: Sin conexión
Puntos: 123
Enlace directo a este mensaje Enviado: 13/Julio/2020 a las 23:32
Hola Emilio

Te cuento que realmente me obsesioné con el tema, seguí buscando y la búsqueda dió sus frutos.
No en español.. pero si en inglés donde encontré varios tutoriales y uno en específico que apuntaba exactamente a mi problema y pude adaptarlo perfectamente así que estoy mas que feliz.

Les dejo a todos los dos links
Primero el del tutorial y luego el del código a aplicar tanto en XML como en los módulos de VBA.
Espero les sirva a quienes tengan mi misma inquietud.

Si alguien tiene problemas por el tema del idioma no duden en preguntarme.

https://www.youtube.com/watch?v=2YW_eDeCz3E

http://accessjitsu.com/2015/09/13/code-listing-making-a-custom-ribbon-in-microsoft-access-part-4/

espero les sirva a todos tanto como a mí. Costó pero resulto!

Nuevamente muchas gracias por tu ayuda!!
 
Este hilo puede cerrarse


Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable