Cambiar fondo- color a un campo de texto

Estoy trabajando con access 2003. Tengo una BD con trabjadores y colores. Cada trabajador tiene un color. Quisiera saber de una forma sencilla como cambiar el fondo, el color a un cuadro de texto cuando se da una condición en otro.

nombre                                        color ( tengo agrupados en 7 colores distintos)

Juan Garrido                              verde

Alonso  Suarez                          verde      

Pedro Salazar                             azul      

Cómo se puede hacer para que en un informe el fondo del cuadro de texto de Juan Garrido sea Verde, el de Alonso Suarez verde, el de Pedro Salazar azul, el de...

2 Respuestas

Respuesta
3

Una forma sería usando la propiedad "Formato condicional", pero creo que la versión 2003 solo te permite definir 3 formatos (lo que te sería insuficiente).

Otra sería por código:

En el evento "Al dar formato" de la sección donde tengas el cuadro de texto a colorear, le programas este código:

Select Case Me.Color
Case "verde"
Me.Nombre.Backcolor=vbGreen
Case "azul"
Me.Nombre.Backcolor=vbBlue
Case "rojo"
Me.Nombre.Backcolor=vbRed
Case...
Me.Nombre.Backcolor=...
Case Else
Me.Nombre.Backcolor=vbWhite
End Select

También tienes que añadir en esa sección el cuadro de texto con el color (aunque sea oculto).

Un saludo.


Gracias por la respuesta pero no me funciona.

En el informe tengo los trabajadores con sus colores.

En modo diseño pincho en detalle -Propiedades -Al dar formato- ... -generador de código-  escribo

Muchas gracias

Te dejo un ejemplo que funciona: http://filebig.net/files/mKBWahFy7a 

En tu caso no sé por qué no. Analiza el ejemplo y adáptalo a lo que tienes en tu BD

Respuesta
2

Lo suyo sería que en el propio registro del trabajador tuvieras un campo con el color de fondo asignado, este campo en el informe lo dejas oculto, y en el evento al dar formato de la línea le cambias el fondo, suponiendo que el campo se llame Color:

Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
    Me.NombreTrabajador.BackColor = Me.Color
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas