Access - Formato condicional en informe access

 
Vista:
sin imagen de perfil
Val: 5
Ha disminuido su posición en 31 puestos en Access (en relación al último mes)
Gráfica de Access

Formato condicional en informe access

Publicado por Itziar (50 intervenciones) el 13/10/2020 13:53:53
Hola!!

Tengo un problemilla y no se como solucionarlo, a ver si me podéis ayudar!
Tengo un informe que tiene una serie de campos, y quiero que cambie de color según un valor determinado de cada campo, para ello tengo un campo auxiliar para cada campo que quiero que cambie de valor.
Es un informe tabular.

Campo 1 donde está el valor, campo 2, donde meto la letra de quiero del campo 1 y con esa letra hago formato condicional.

Estos campos tienen un valor string. Se que a los 12 digitos tiene una letra fija y al darle formato pongo este código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
If Not IsNull(Reports!mireport![campo1].Value) Then
    mimotivoc1 = Reports!mireport![campo1].Value
    mivariablec = Left(mimotivoc1, InStr(mimotivoc1, "-") + 2)
    mivariablec = Right(mivariable, 1)
    Me.micampo2 = mivariablec
End If
SetControlFormatting
End Sub
 
Private Sub SetControlFormatting()
 
    If (IsNull(Me.micampo2) Or Me.micampo2 = "0") Then
        Me.[micampo1].BackColor = vbWhite
    Exit Sub
    End If
    If (Me.micampo2 = "S") Then
        Me.[1micampo1].BackColor = vbGreen
   endif
    If (Me.campo1 = "N") Then
        Me.[micampo2].BackColor = vbYellow
    Exit Sub
 
    End If
End Sub
 
Private Sub Detalle_Paint()
SetControlFormatting
End Sub

El caso es que si pongo este codigo:
1
2
3
4
5
6
If Not IsNull(Reports!mireport![campo1].Value) Then
    mimotivoc1 = Reports!mireport![campo1].Value
    mivariablec = Left(mimotivoc1, InStr(mimotivoc1, "-") + 2)
    mivariablec = Right(mivariable, 1)
    Me.micampo2 = mivariablec
End If

en el evento al dar formato, no me mete ningún valor en el campo1 y por tanto no va el condicional.
Si meto ese mismo codigo en el evento al pintar, si que me va todo bien, pero como que el informe entra en bucle y no para, esta todo el rato como refrescando.

Alguien me podría ayudar??

muchas gracias a todos!! realmente estoy atascada aquí.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Formato condicional en informe access

Publicado por Anonimo (3303 intervenciones) el 13/10/2020 16:36:46
Si en el evento detalle se puede obtener el dato referente para aplicar un color -la letra- ¿Qué impide colorear los objetos según la letra obtenida? (y todo en el mismo evento y sin formato condicional).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 5
Ha disminuido su posición en 31 puestos en Access (en relación al último mes)
Gráfica de Access

Formato condicional en informe access

Publicado por Itziar (50 intervenciones) el 13/10/2020 21:38:43
Ese es el problema, que el código puesto en al dar formato en el detalle del Report, no me trae ningún valor.
Y si lo pongo en el evento Al Pintar, entonces si trae valores pero se "ralla" es decir entra como en un bucle de refresco y no para de refrescar pantalla. :(

Graciassss!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Formato condicional en informe access

Publicado por Anonimo (3303 intervenciones) el 14/10/2020 00:59:17
Yo lo intentaría así:

1
2
3
4
5
Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
Me.Campo1.BackColor = vbWhite
If (MID(Me.Campo1, InStr(Me.Campo1, "-") + 2,1) = "S") Then Me.Campo1.BackColor = vbGreen
If (MID(Me.Campo1, InStr(Me.Campo1, "-") + 2,1) = "N") Then Me.Campo1.BackColor = vbYellow
End Sub

No tengo muy claro que en la exposicion inicial se respetasen los nombres de los objetos,

En base a ello mi aportación: el objeto que se evalúa, es el mismo que recibe el color de fondo

En todo caso siempre queda la opción de aprovechar lo que parezca útil
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar