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

Tema cerradoColor botones mediante vba

 Responder Responder
Autor
Mensaje
rokoko Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 16/Febrero/2008
Localización: Pamplona
Estado: Sin conexión
Puntos: 3062
Enlace directo a este mensaje Tema: Color botones mediante vba
    Enviado: 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

Arriba
rokoko Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 16/Febrero/2008
Localización: Pamplona
Estado: Sin conexión
Puntos: 3062
Enlace directo a este mensaje Enviado: 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

Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable