Informes - condición en 2 campos

Maestros, a ver si me pueden dar una mano! Me están pidiendo generar un informe
en donde pueda, mostrar los datos de finalización de trabajos diarios con colores
si se sale de horario normal, no todos los trabajos finalizan en los mismos rangos
de horarios, entonces si se sale del rango horario muestre la casilla en rojo
(en particular para cada trabajo). Estuve intentando de varias formas dentro
del informe, pero me toma la condición del primero para el resto de los demás.
Les paso los datos de ejemplo (empecé para probar usando números en lugar de
horas, para simplificar el inicio del diseño)
tabla usada
Procesos fin (títulos)
Cámara 3
Pasivas 4
idp 5
Código probado
Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
Dim procesos As Variant
Dim form As Variant
Dim regi As Variant
form = Me
regi = Me.CurrentRecord
For Each regi In form
Select Case Me.procesos.Value
Case "pasivas"
If Me.fin.Value > 10 Then
Me.fin.BackColor = 23232
End If
Case "idp"
If Me.fin.Value > 10 Then
Me.fin.BackColor = 25445
End If
Case "camara"
If Me.fin.Value > 0 Then
Me.fin.BackColor = 255
End If
End Select
Next

1 Respuesta

Respuesta
1
Quítale la variable regí, su asignación a currentrecord y el for, y así a ojo yo diría que te debe funcionar correctamente.
¿Y cuál es el problema? Básicamente creo que te has liado con lo que hace el access con el evento. Format es llamado por cada registro del informe, por lo que no es necesario recorrer los datos con un bucle for. Es decir, cuando tu pones en el código me. Fin. value > 10 ya lo está haciendo sobre el registro que se está formateando en ese momento.
Tenéis razón, les agradezco mucho, ayer cuando volvía a casa en el micro se me encendió la lámpara y vi cual er el problema, lo que ocurría era que no le estaba poniendo el else al if dentro de cada case, entonces me quedadba el formato de un color determinado para el registro siguiente. ¡Muchas gracias!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas