Como puedo dar un valor numérico a un texto en un informe

Tengo un informe en el que en un cuadro de texto puedo recibir tres TEXTOS según el cuadro combinado del formulario. Los textos son:

VACACIONES

Asuntos personales

BAJA

Y quisiera que:

Cada vez que aparezca VACACIONES sume 1 al cuadro de Texto1

Cada vez que aparezca ASUNTOS PERSONALES sume 1 al cuadro de Texto2

Cada vez que aparezca BAJA, sume 1 al cuadro de Texto3.

¿Se puede hacer?

1 respuesta

Respuesta
2

Sería conveniente que pusieras una imagen de como lo quieres. Por ejemplo, supongamos que tengo una tabla Otra con

Puedo construir un informe, en que el cuadro de texto Texto7 corresponde a Alemania, el 12 a España y el 13 a Francia. El control Pais equivaldría a tu cuadro combinado

El código es un poco largo para este caso en particular, ya que no sé como lo quieres hacer

Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
If Pais = "Alemania" Then
Texto7 = DCount("nz([pais])", "otra", "idcliente<=" & Me.IdCliente & " and pais='" & Me.Pais & "'")
Texto7.BorderStyle = 1
Texto12.BorderStyle = 0
Texto13.BorderStyle = 0
ElseIf Pais <> "Alemania" Then
Texto7 = ""
Texto7.BorderStyle = 0
End If
If Pais = "España" Then
Texto12 = DCount("nz([pais])", "otra", "idcliente<=" & Me.IdCliente & " and pais='" & Me.Pais & "'")
Texto12.BorderStyle = 1
Texto7.BorderStyle = 0
Texto13.BorderStyle = 0
ElseIf Pais <> "España" Then
Texto12 = ""
Texto12.BorderStyle = 0
End If
If Pais = "Francia" Then
Texto13 = DCount("nz([pais])", "otra", "idcliente<=" & Me.IdCliente & " and pais='" & Me.Pais & "'")
Texto13.BorderStyle = 1
Texto12.BorderStyle = 0
Texto7.BorderStyle = 0
ElseIf Pais <> "Francia" Then
Texto13 = ""
Texto13.BorderStyle = 0
End If
End Sub

Te mando una foto para que lo veas como lo quiero.

El id DNI esta oculto.

No me refería a eso. Vamos a suponer que en un registro pone Vacaciones. Mi pregunta es, ¿deben aparecer los cuadros de texto Texto1 y Texto3 aunque estén vacíos?

Si. Tienen que estar

Este es el erro que me da, lo he probado de mil maneras.

Solucionado. Tan sencillo como esto. Gracias por encaminarme.

Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
If TIPO = "VACACIONES" Then
Texto1 = 1
ElseIf TIPO <> "VACACIONES" Then
Texto1 = ""
Texto1 = 0
End If
If TIPO = "OTROS" Then
Texto2 = 1
ElseIf TIPO <> "OTROS" Then
Texto2 = ""
Texto2 = 0
End If
If TIPO = "ASUNTOS PROPIOS" Then
Texto3 = 1
ElseIf TIPO <> "ASUNTOS PROPIOS" Then
Texto3 = ""
Texto3 = 0
End If
End Sub

Estás cometiendo unos errores

Primero le estás diciendo que el campo DNi sea menor que un valor texto, cosa que tal como lo tienes puesto no se puede.

Segundo, por un lado citas el IdDNI, pero luego haces referencia al DNI. O una cosa u otra. Por ejemplo, si tengo la tabla

Y construyo el informe

En el diseño del informe el campo IdDNI está oculto. Y el código es

Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
If Clase = "Vacaciones" Then
Texto1 = DCount("*", "permisos", "iddni<=" & Me.IdDni & " and clase=""Vacaciones""")
Texto2 = ""
Texto3 = ""
ElseIf Clase = "asuntos personales" Then
Texto2 = DCount("*", "permisos", "iddni<=" & Me.IdDni & " and clase=""Asuntos personales""")
Texto1 = ""
Texto3 = ""
ElseIf Clase = "Baja" Then
Texto3 = DCount("*", "permisos", "iddni<=" & Me.IdDni & " and clase=""Baja""")
Texto1 = ""
Texto2 = ""
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas