Cinta Ribbon personalizada con imágenes propias
Ya cree un menu ribbon personalizado con código XML, pero para agregar imágenes a los botones solo se hacerlo con las imágenes prediseñadas de window. Alguien sabe como se puede hacer para agregar imágenes propias
Es bastante sencillo, sólo tienes que cambiar la parte del código xml del botón (o elemento que sea) que dice "imageMso=" por esto otro "getImage="OnGetImages" ", y luego añadir en un módulo independiente la función pública OnGetImages, que es donde le indicarás, para cada botón la ruta de la imagen.
Por ejemplo, un botón guardar, con la imagen de microsoft, podría tener este código:
<button id="btnGuardar" size="large" label="Guardar" screentip="Guardar"
supertip="Guarda los cambios realizados en el registro"
imageMso="RecordsSaveRecord" onAction="OnActionButton" getEnabled="GetEnabled" />
Con una imagen personalizada, sería así:
<button id="btnGuardar" size="large" label="Guardar" screentip="Guardar"
supertip="Guarda los cambios realizados en el registro"
getImage="OnGetImages" onAction="OnActionButton" getEnabled="GetEnabled" />
Y el código de la función OnGetImages, si las imágenes están en el mismo directorio de tu BD, dentro de una carpeta llamada Imagenes, sería:
Function OnGetImages(control As IRibbonControl, ByRef image)
Select Case control.ID
Case "btnGuardar"
Set image = LoadPicture(CurrentProject.Path & "\Imagenes\Guardar.jpg")
Case ...
End Select
End Function
Este código sería único para todos tus botones, sólo tendrías que añadir tantos Cases como necesitases, que es la opción que yo uso. Otra forma sería hacer una función para cada botón, pero la idea es la misma, con "Set image=LoadPicture()" le asignas la ruta y extensión de la imagen que quieras usar.
Añadir que esto sirve para imagenens jpg y bmp, con otros formatos, ya no estoy seguro 100%, pero si miras en la web del experto Neckkito, verás que tiene un manual de ribbon en el que te explican cómo has de hacerlo si esto no te funciona.
Hola! muchas gracias por tu atención!, te comento que lo puse a prueba como me dijiste, y me apareció un cartel que me dice que "no puede ejecutar la macro o la función de devolución de llamada "OnGetImages", asegurese que la macro o función exista y que use los parametro correctos.
Los pasos que hice fueron:
-Como tenia el archivo access y una carpeta con iconos que elegí en diferentes partes del escritorio de mi compu, copie estos dos archivos en una carpeta nueva
-Luego cree el módulo con la siguiente estructura:
Option Compare Database
Function OnGetImages(control As IRibbonControl, ByRef image)
Select Case control.Id
Case "btn1"
Set image = LoadPicture("C:\Users\moren_000\Desktop\Software Extintores\iconos\cliente.bmp")
End Select
End Function
- Luego agregue referencia a la función XML de la siguiente forma:
<button id="btn1"
size="large"
label="Clientes"
screentip="Clientes"
supertip="Agregar o modificar clientes"
getImage="OnGetImages"
onAction="menuRibbon.cliente"/>
No puedo encontrar cual es el error, pero por lo que lei del cartel de aviso es que escribi mal la función publica OnGetImages.
No le veo nada raro a tu código, lo único que se me ocurre es que compruebes que tienes registrada esta librería:
“Microsoft Office xx Objetc Library” (donde xx representa la versión de Office que tengas instalada)
Para registrar una referencia debes ir, en el editor de VB, a Menú → Herramientas → Referencias... Se te abrirá una ventana mostrando todas las referencias disponibles. Buscas la que te comento, y si no está marcada la marcas.
Ya me dirás
No estaba tildada como registrada, la tilde y me sigue apareciendo el mismo cartel, ya no se que hacer... cual podría ser el problema??
Pues no sé, como te decía antes, no le veo nada raro ni a la función VBA ni al XML del botón...
Te adjunto una BD que hice, con un ribbon muy sencillito con imágenes personalizadas (van incluídas en el rar), para que, en primer lugar compruebes si te funciona o no (debiera, porque nadie me reportó problemas al colgarla en la web) y luego compruebes las referencias y las sintaxis, por si tienes algún espacio fuera de lugar en el XML (es bastante quisquilloso con la sintaxis), o algo que se me escapa...
Si no lo consigues, y quieres, pásame una copia de tu BD con la imagen, y le echo un vistazo-
Ah!, se me olvidadaba! Para abrir la BD y poder ver los códigos y la tabla del ribbon, mantén pulsada la techa SHIFT mientras la abres.
Hola buen dia, estuve mirando el programita que me mandaste y tampoco me funciona, le pasa lo mismo que al mio, no encuentra las imagenes, no se si será algun problema de mi access, es la versión 2013
Yo tengo access 2013 y me funciona perfectamente.
La que te mandé yo, la carpeta de las imágenes tiene que estar en la misma carpeta que tienes la BD.
Prueba esta otra alternativa (pagina 9 y siguientes) a ver si te funciona mejor..
No sé que más decirte que pruebes...
- Compartir respuesta
Bueno quizá sea tarde a estas alturas, pero yo pase por el mismo problema que silvina, y he de comentar que el error se debe a que en la construcción de la ribbon había mas de un botón con el mismo id aun cuando fuesen de dos cintas diferentes no debe de tener el mismo id mientras estén en la misma base de Access. - Johatan Orihuela