Texto en informe dependiendo resultado del campo de una consulta

Tengo una base de datos en la que hay 2 campos en una tabla como son peso y altura. He creado una consulta con un campo que es índice de masa corporal (peso /altura al cuadrado). Tengo un informe con los datos de las personas y me gustaría que apareciera dependiendo del valor de indice de masa corporal bajo peso(<18) , normopeso (18-24) sobrepeso(>25) una frase tipo "debe ganar peso", "mantengase igual" o "debe perder peso". ¿Cómo se podría hacer?

2 respuestas

Respuesta
1

Si a un informe le añado un cuadro de texto llamado Texto 10

Y en las propiedades de la sección detalle en el evento Al dar Formato le pongo, por ejemplo,

Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
If Precio <= 25 Then
Texto10 = "Barato"
ElseIf Precio >= 26 And Precio <= 40 Then
Texto10 = "Regular"
ElseIf Precio >= 41 And Precio <= 70 Then
Texto10 = "Caro"
Else
Texto10 = "Caro de coj..."
End If
End Sub

Cuando lo abro

Aunque esto lo combinaría con el formato condicional para darle un color diferente a lo de Barato, Regular, etc.

Respuesta
1

Le preparé este ejemplo.

TABLA

DISEÑO DEL INFORME

En la sección de Detalle en el evento Al dar formato, adiciono este código

Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
  Dim indicemasa As Double
  indicemasa = Round(Me.peso / Me.altura ^ 2, 2)
  'Si tiene calculado el indece de masa en una
  'consulta reemplace Me.ctlindicemasa por el nombre
  'del campo de la consulta
  'Quedaría:
  'indicemasa=Me.campocalculomasa
  'y suprima la linea siguiente
  Me.ctlindicemasa = indicemasa
  Select Case indicemasa
     Case Is < 18
       Me.ctlnota = "Debe ganar peso"
     Case 18 To 24.99
       Me.ctlnota = "Mantengase igual"
     Case Is >= 25
       Me.ctlnota = "Debe perder peso"
  End Select
End Sub

RESULTADO DEL INFORME

Observe que en ejemplo calculo el índice de masa corporal en el evento, pero si lo hace en la consulta debe utilizar este valor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas