Imprimir página | Cerrar ventana

Ribbon access

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=84718
Fecha de impresión: 26/Marzo/2026 a las 22:25


Tema: Ribbon access
Publicado por: rokoko
Asunto: Ribbon access
Fecha de publicación: 25/Septiembre/2019 a las 09:27
Nunca habia tocado este tema y tiene lo suyo, lo han complicado estos de Microsoft.....
La cuetion es que he encontrado unos ejemplos y mas o menos para hacer algo sencillo veo por donde van los tiros.....

https://645c6226-a-62cb3a1a-s-sites.googlegroups.com/site/jjjt1973/Home/creando-la-cinta-de-opciones-ribbon-en-access-2007/EjemploRibbonJJJT.rar?attachauth=ANoY7cqdw2Fi7DxlvFmCsAGkqRGuiR3mgm_-w0W6hckWZwX4OWy5ePNOEn-1xSjjYxW-ZSBVphZulCjPlyoC8ll2wCyEb5X_fGAKdl5i91Kg9o0trqWYJDbhbQtGxY8zjUDOiv0bgRuowvIvWmyaxQr3fRqkUBR8c8nn3XJL49lpUiHoCcIiMOK_e_zsPJaMrw_8R2LcRXKXbRBvpHG5tHuWsbZhrWvXSNY1ioR9y6NySDOjLDrOHfoZUWPDHKTs8_scCeCzqqFdNaZeQTAbgZm-pa6xfeSrquGOmznRWf50aolAlDAJ2jw%3D&attredirects=0&d=1

Tambien estoy utilizando el programa Ribbon creator, que aunque la version gratuita esta limitada me puede valer para empezar, este programa te permite hacer bastantes cosas sin escribir una sola linea de xml.

Utilizando este programa, pongo unos iconos personalizados, en el xml de guarda la ruta real, si voy a otro pc estos iconos no funcionan.

Como podria hacer referencia a una carpeta donde este la base de datos, parecido a CurrentProyect.path de vba. No lo consigo

tag="RibbonName:=IDBERibbonCreator2016;inMenu:=;CustomTagValue1:=;CustomTagValue2:=;CustomTagValue3:=;CustomPicture:=Socios.jpg;CustomPicturePath:=Z:\MisDocumentos\Drive\ACCESS\UNAI BD\BD16 Biblioteca\" onAction="OnActionButton" getVisible="GetVisible" getEnabled="GetEnabled" />
          <button id="btn1" size="large" label="Libros" getImage="GetImages" tag="RibbonName:=IDBERibbonCreator2016;inMenu:=;CustomTagValue1:=;CustomTagValue2:=;CustomTagValue3:=;CustomPicture:=libros.jpg;CustomPicturePath:=CurrentProject.Path &"\"" onAction="OnActionButton" getVisible="GetVisible" getEnabled="GetEnabled" />

He probado de multiples formas y no lo consigo......

Saludos




Respuestas:
Publicado por: JuanW
Fecha de publicación: 25/Septiembre/2019 a las 10:03
Has probado a poner una funcion con el path en vez de CurrentProjectPath?

Lo digo porque puede que esa funcion no esté "definida" en los Ribbons. Solo es una idea...

Estoy de acuerdo contigo que lo han hecho "MUY DIFICIL"

Yo hice uno para Excel auto actualizable (combos) que me costo varios "eggs".

Saludos


Publicado por: rokoko
Fecha de publicación: 25/Septiembre/2019 a las 10:36
Publicado originalmente por JuanW JuanW escribió:

Has probado a poner una funcion con el path en vez de CurrentProjectPath?

Lo digo porque puede que esa funcion no esté "definida" en los Ribbons. Solo es una idea...

Estoy de acuerdo contigo que lo han hecho "MUY DIFICIL"

Yo hice uno para Excel auto actualizable (combos) que me costo varios "eggs".

Saludos


Esplicate mejor....estoy espeso a estas alturas.Confused


Publicado por: pitxiku
Fecha de publicación: 25/Septiembre/2019 a las 12:36
Cita <button id="btn1" size="large" label="Libros" getImage="GetImages"


En el atributo getImage puedes indicar una función o macro que devuelva la imagen que quieres mostrar. De hecho, ya tienes declarada la función: GetImages. Sólo tienes que buscarla (entiendo que la aplicación de Gunter crea esa función en la base de datos) o crearla, y así podrás definir dónde están las imágenes:

- https://www.accessribbon.de/en/?Access_-_Ribbons:Callbacks:getImage

Otra posibilidad es usar el atributo ImageMso, donde indicas el id de access para sus iconos, con lo que no tendrás que llevar las imágenes de un ordenador a otro.


Publicado por: rokoko
Fecha de publicación: 25/Septiembre/2019 a las 13:13
Efectivamente, existe la funcion. Pero no me queda muy claro como indicarle la ruta CurrentProyect.Path

Sub GetImages(control As IRibbonControl, ByRef Image)
    ' Callbackname in XML File "getImages"
   
    ' Loads an image with transparency to the ribbon
    ' Modul basGDIPlus is required
    ' Laed ein Bild mit Transparenz in das Ribbon
    ' Modul basGDIPlus wird dafuer benoetigt
   
    Dim strPicturePath  As String
    Dim strPicture      As String
   
    strPicture = getTheValue(control.Tag, "CustomPicture")
   
    If bolUsePicturesFromTable = True Then
        Set Image = getIconFromTable(strPicture)
    Else
        If bolUseDynamicPicturePath = True Then
            strPicturePath = getAppPath & strAppPicturePath & "\"
        Else
            strPicturePath = getTheValue(control.Tag, "CustomPicturePath")
        End If
        Set Image = LoadPictureGDIP(strPicturePath & strPicture)
    End If

End Sub


Publicado por: rokoko
Fecha de publicación: 25/Septiembre/2019 a las 14:43
He modificado una linea y funciona...

Sub GetImages(control As IRibbonControl, ByRef Image)
    ' Callbackname in XML File "getImages"
   
    ' Loads an image with transparency to the ribbon
    ' Modul basGDIPlus is required
    ' Laed ein Bild mit Transparenz in das Ribbon
    ' Modul basGDIPlus wird dafuer benoetigt
   
    Dim strPicturePath  As String
    Dim strPicture      As String
   
    strPicture = getTheValue(control.Tag, "CustomPicture")
   
    If bolUsePicturesFromTable = True Then
        Set Image = getIconFromTable(strPicture)
    Else
        If bolUseDynamicPicturePath = True Then
            strPicturePath = getAppPath & strAppPicturePath & "\"
        Else
            'strPicturePath = getTheValue(control.Tag, "CustomPicturePath")
            strPicturePath = CurrentProject.Path & "\IconosAplicacion\"    '!!!!!Para que pille los iconos de la aplicacion de la carpeta donde esta la base de datos
        End If
        Set Image = LoadPictureGDIP(strPicturePath & strPicture)
    End If

End Sub



Publicado por: emiliove
Fecha de publicación: 26/Septiembre/2019 a las 01:43
Hola Rokoko
Solo te falto decir que podemos cerrar, mientras te dire:
Tenemos dos atributos en el XML del Ribbon para tratar las imágenes uno es Estático y el otro Dinámico, el estático va en el elemento raíz del XML: customUI  que es loadImage que en la devolución de llamada quedaría:


Callbacks del loadImage:


Sub MyloadImage(ImageName As String, ByRef Image)

    Dim stPath As String

    stPath = CurrentProject.Path & "\imagenes\" & ImageName

Set Image = LoadPicture(stPath)

End Sub


Aquí en el atributo del control usarías Image


Y en el dinamico es en el mismo atributo del control con getImage y la devolución quedaría mas o menos así:

Callbacks del GetImages:


Public Sub onGetImages(control As IRibbonControl, ByRef Image)

    Select Case control.Id

Case "buttonPedidos"

 Set Image = LoadPicture(CurrentProject.Path & "\imagenes\actividades.jpg")

    End Select

    End Sub



Saludos.


Publicado por: rokoko
Fecha de publicación: 26/Septiembre/2019 a las 07:09
Gracias Emilio, algo mas claro me queda, pero tiene tela esto de los Ribbon.

Saludos

Se puede cerrar



Imprimir página | Cerrar ventana