Problema con ver o no etiqueta

Sveinbjorn El Rojo:

Soy novato en access y te escribo por si puedes ayudarme.

Veras tengo una Bd con este formulario

En el cual tiene tres opciones pagado, pendiente o sobrante

Si es pagado color verde pendiente color rojo y sobrante color amarillo.

Lo que me gustaría es poner una etiqueta en la cual se pudiera ver pagado, pendiente o sobrante según sea, y no le encuentro la solución

Te agradecería que si es posible me dieras una ayuda.

1 respuesta

Respuesta
1

Imagino que "pendiente", "pagado" o "sobrante" van en función del resultado de campo "Total". Si este cuadro de texto se llama txtTotal, yo haría lo siguiente:

1º/ Añadir una etiqueta a tu formulario llamada lblInfo, y en ella le escribes Pagado (o Pendiente, o Sobrante, da lo mismo)

2º/ En el evento "Al activar registro" de tu formulario le generas este código:

Private Sub Form_Current:

If Nz(Me.txtTotal,0)<0 Then

Me.lblInfo.Caption="Pendiente"

ElseIf Nz(Me.txtTotal,0)=0 Then

Me.lblInfo.Caption="Pagado"

Else

Me.lblInfo.Caption="Sobrante"

End If

3º/ El mismo código lo has de poner en los eventos "después de actualizar" de los cuadros de texto donde pongas las cantidades que te van pagando (los 3 de la parte de entregas encima de txtTotal)

Ya me dirás si te sirve.

Un saludo.


Un nuevo foro de access, visítanos: http://nksvaccessolutions.com/Foro/

Hola de nuevo:

Hay algo que no funciona bien esto es lo que tengo puesto

Private Sub Form_Current()
If Nz(Me.Texto86, 0) < 0 Then
Me.Etiqueta122.Caption = "Pendiente"
ElseIf Nz(Me.Texto86, 0) = 0 Then
Me.Etiqueta122.Caption = "Pagado"
Else
Me.Etiqueta122.Caption = "Sobrante"
End If
End Sub

Sobrante y pagado funciona pero pendiente no

Un saludo.

Disculpa, que te dije mal: no, o hagas sobre el cuadro "Total", sino sobre "Pendiente" y cambia los signos:

Private Sub Form_Current()
If Nz(Me.TextoXX, 0) > 0 Then
Me.Etiqueta122.Caption = "Pendiente"
ElseIf Nz(Me.TextoXX, 0) = 0 Then
Me.Etiqueta122.Caption = "Pagado"
Else
Me.Etiqueta122.Caption = "Sobrante"
End If
End Sub

Sigue fallando algo, ahora funciona "pendiente"y "pagado" pero "sobrante" no.

Qué raro... ¿me podrías enviar una copia de tu BD comprimida a [email protected]?

He mandado la Bd.

Saludos.

Recibido, en un rato te digo algo

Por lo que veo, el problema es que el código se ejecuta antes de que se hagan los cálculos en el cuadro de texto.

Probando, si lo hago así funciona:

Private Sub Form_Current()
Me.Recalc
If Nz(Me.Texto113, 0) > 0 Then
Me.Etiqueta122.Caption = "Pendiente"
ElseIf Nz(Me.Texto113, 0) = 0 Then
Me.Etiqueta122.Caption = "Pagado"
Else
Me.Etiqueta122.Caption = "Sobrante"
End If
End Sub

Además (y hablo sin saber si ese formulario es para añadir/editar los datos o solo de consulta), sería conveniente que pusieras el mismo código o una llamada al evento anterior es los eventos "después de actualizar" de los siguientes cuadros: ImporteGasto, Inporte1, Inporte2 e Inporte3.

Un saludo.


Un nuevo foro de access, visítanos: http://nksvaccessolutions.com/Foro/

Te lo agradezco mucho ahora funciona perfectamente muchísimas garcías

No hay de qué.

Hola:

No se si lo hago bien en pedirte ayuda en esta misma pregunta habiéndola votado o dendria que hacer otra, perdona si lo hago mal

en este formulario pongo la misma instrucción cambiando los nombres pero no me funciona me puedes decir si no te importa cual es el motivo de ello

Un saludo.

.

Si el formulario es continuo (muestra más de un registro), como parece, no lo puedes hacer así, porque la etiqueta(cuadro de texto) es la misma en todos los registros, y te mostrará siempre el mismo valor.

Intenta hacerlo, si te lo permite, que no lo sé, en el formato condicional.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas