Imprimir página | Cerrar ventana

Color botones mediante vba

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=84868
Fecha de impresión: 19/Abril/2024 a las 07:56


Tema: Color botones mediante vba
Publicado por: rokoko
Asunto: Color botones mediante vba
Fecha de publicación: 30/Noviembre/2019 a las 20:07
Estoy aprendiendo a hacer un tpv, los botones de la forma mas sencilla posible y a mi nivel.
Estaba haciendolo en mdb, pero el tema de los colores no lo lleva bien, por lo que ahora estoy haciendola en accdb con access 2013.

Con este simple codigo el boton se pone de el color deseado, en este caso rojo, hasta hay todo bien y facil. Y si lo pongo asi funciona de hecho en la base de datos
Me.NombreBoton.BackColor=255

Yo tengo creado una formulario con 100 botones y mediante un recordset le asigno a cada boton tipo de letra, color de letra, visible si no etc, me funciona todo menos ponerle color al boton.

El codigo es este y como digo todo lo hace bien menos el colorear el boton, por mas que lo miro y repaso, veo todo bien.

Los dos que estan en negrita uno u otro deberian  funcionar pero no lo hacen.......

Private Sub Form_Load()



'Bucle que ira poniendo datos de cada boton
Dim rst As DAO.Recordset 'sacado de qryPAraRecordset
Set rst = CurrentDb.OpenRecordset("SELECT tbPaneles.Orden, tbPaneles.Panel, tbPaneles.TextoPanel, tbBotones.NombreBoton, tbBotones.TextoBoton, tbBotones.BotonImagen, tbBotones.ColorBoton, tbBotones.ColorLetras, tbBotones.ProductoID, tbBotones.AccionBoton, tbBotones.EsVisible FROM tbPaneles INNER JOIN tbBotones ON tbPaneles.Orden = tbBotones.OrdenPaneles WHERE (((tbPaneles.Orden)=1));")

'Aqui verificamos si la consulta del recordset anterior tiene registros.
If rst.RecordCount = 0 Then  ' Si no hay registros nos avisa de que no hay nada que facturar
MsgBox "No hay botones en la tabla"

Else


While rst.EOF = False    'Abre el bucle, mientras sea False se ejecuta???Cuando en el recordset no hay registros sera True y saldra del bucle??

'MsgBox " " & rst("NombreBoton") & " "  'Esto es para probar
'MsgBox " " & rst("ColorBoton") & " "    'Esto es para probar

    Dim varControl As String
    varControl = rst("NombreBoton")
   
    Me.Controls(varControl).BackColor = 255
    Me.Controls(varControl).ForeColor = rst("ColorLetras")   'Color letras
    Me.Controls(varControl).BackColor = rst("ColorBoton")  'Color boton  No pilla color no se porque???
    Me.Controls(varControl).FontName = "Courier"             'Tipo letra
    Me.Controls(varControl).Fontsize = 6
    'Me.Controls(varControl).Enabled = False
    Me.Controls(varControl).Visible = rst("EsVisible")  'Boton visible si o no
    Me.Controls(varControl).Caption = rst("TextoBoton")  'Texto boton
    Me.Controls(varControl).OnClick = "=PruebaCC()" 'Asignamos al evento Click la Funcion PruebaCC
   
   
rst.MoveNext
Wend
rst.Close
Set rst = Nothing


End If

End Sub




Respuestas:
Publicado por: rokoko
Fecha de publicación: 30/Noviembre/2019 a las 20:15
Buenos pues despues de estar tiempo mirando el porque falla y preguntar la solucion aqui, he descubierto porque...En las propiedades del boton, en formato, hay que poner Usar tema en SI

OuchOuch

Se puede cerrar




Imprimir página | Cerrar ventana