Imprimir página | Cerrar ventana

Formato Condicional

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=86861
Fecha de impresión: 26/Marzo/2026 a las 20:58


Tema: Formato Condicional
Publicado por: M3talzoneDGD
Asunto: Formato Condicional
Fecha de publicación: 13/Febrero/2024 a las 13:09
Buenas, de nuevo otra duda, se que puedo ser un poco pesado pero es que no veo como hacerlo.

En un formulario continua con los campos FECHA, NºPEDIDO,PROVEDOR,ESTADO hay forma de que toda la fila se ponda de un color X dependiendo del valor que tenga el campo ESTADO. Ejemplo, si ESTADO=PEDIDO que la fila entera tenga de color de fondo rojo y el texto en blanco, y si ESTADO = RECIBIDO, que la fila entera tenga de color de fondo verde y el texto en negro. En un campo o control si que he podido hacerlo a través del formato condicional, pero lo que quiero, si es posible, que toda la fila esté con el color del formato condicional.

No se si me he explicado bien.

Muchas gracias de antemano.





Respuestas:
Publicado por: xavi
Fecha de publicación: 13/Febrero/2024 a las 13:20
Hola,

Hay diferentes formas de hacerlo:
a. aplicar la misma "expresión" a todos los controles. 
b. colocar un control en el fondo independiente con ese formato condicional y todos los controles por encima transparentes. 

Si optas por la segunda opción , y viendo la combinación de colores que pides, deberás combinar ambas técnicas ya que el fondo lo marcará la técnica B mientras que el texto lo marcará la técnica A.

A mi entender es más laborioso que complicado.

Un saludo


-------------
Xavi, un minyó de Terrassa

http://www.llodax.com" rel="nofollow - Mi web


Publicado por: M3talzoneDGD
Fecha de publicación: 13/Febrero/2024 a las 14:09
Perdona mi torpeza, pero como le digo por ejemplo al control fecha que si el control estado = "PEDIDO" me ponga el fondo en tal color?
Que es por código VBA o a través del asistente que tiene? porque si es a través del asistente no se como hacerlo.

muchas gracias.



Publicado por: xavi
Fecha de publicación: 13/Febrero/2024 a las 14:26
Si nos referimos solo a poner los fondos de un color u otro, la técnica propuesta es:

- Pasar la propiedad Estilo de fondo a transparente. No todos los controles tienen esa propiedad pero los TextBox y ComboBox si
- Añadir un TextBox que podemos llamar fondo. Será independiente, con estilo de fondo normal y colocado al fono (botón derecho, ubicación, enviar al fondo
- A ese TextBox le daremos un formato condicional (botón derecho, formato condicional, nueva regla). En la siguiente pantalla dejamos la selección de la parte superior como "Compruebe los datos en el registro actual o use una expresión" y el la parte de abajo despliegas y escoges "La expresión es". En el cuadro escribes la expresión:
[Estado] ="PEDIDO"
Entre corchetes va el nombre del control
Define el formato. En tu caso el color de fondo
A probar

Si deseas cambiar el color del texto deberás hacer algo parecido pero no sobre este control si no sobre cada uno de los textbox/combobox del detalle.

Un saludo
PD: hacerlo por VBA es una "matada" que sólo he hecho una vez



-------------
Xavi, un minyó de Terrassa

http://www.llodax.com" rel="nofollow - Mi web


Publicado por: Mihura
Fecha de publicación: 13/Febrero/2024 a las 15:23
algo así: 

Function RT_CamposFormato(Frm As Form, ByVal ArrayCampos As String = "", ByVal FocusBackColor As Long)    
    
    Dim i As Integer, V As Variant, Ctl As Control
    V = ArrayCampos

    For i = 0 To UBound(V)
        Set Ctl = Frm.Controls(V(i))
            Ctl.FormatConditions.Add acFieldHasFocus
            Ctl.FormatConditions(0).BackColor = FocusBackColor
    Next i
End Function

Es un recorte de una función con más cosas, así que ojo hay que pulirla, también se podría pasar como lista de campos.

Lo bueno del condicional GotFocus es que si ya existe lo machaca ... así que no hay que preocuparse por borrarlo primero.


-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: M3talzoneDGD
Fecha de publicación: 13/Febrero/2024 a las 16:49
Conseguido, muchas gracias a todos y perdón por las molestias.
Cerrar el hilo




Imprimir página | Cerrar ventana