Obligar a llenar campo según condición de otro campo Access

Tengo en un formulario el campo "SUSPENCION", en una lista despegable tiene las opciones SI o NO. Tengo el otro campo llamado "HORAS DE SUSPENCION", donde se ingresan las horas si fue suspendido.

Lo que necesito es que si en el campo "SUSPENCION" seleccionan "SI", obligue a llenar datos en "HORAS DE SUSPENSION".

Lo he hecho ocultando los campos (CASE) según la respuesta, pero tengo el inconveniente hay veces que no se llena al ser habilitado.

2 respuestas

Respuesta
1

Si tienes un botón para guardar los datos, o botones para navegar, puedes poner una comprobación en él para que verifique si tiene o no valor, algo así:

If Me.SUSPENCION=True AND IsNull(Me.HORAS_DE_SUSPENSION) Then

Msgbox "Es obligatorio rellenar el campo ""Horas de suspensión""", vbInformation

Me.HORAS_DE_SUSPENSION.SetFocus

Cancel=True

End If

'y aquí iría el resto de tu código.

Si no tienes esos botones, otra opción sería poner la comprobación en el evento "Antes de guardar" del formulario u otro similar.

Por último, otra opción sería que en tu "CASE", al mostrar el campo, coloques el foco en ese campo y programes la comprobación en en evento "Al perder el enfoque" del propio campo Horas de suspensión.

Un saludo.


Una nueva web de access, visítanos: http://nksvaccessolutions.com

¡Gracias! Sveinbjorn El Rojo por tu ayuda, la combinación de tu respuesta y la de Jacinto fueron de gran ayuda.

Saludos

Respuesta
1

Allan: Lo que yo haría es lo siguiente, suponiendo que cada vea actualices el Campo.

Primero un aviso:

Private Sub SUSPENCION_AfterUpdate()
MsgBox "Recuerda que has de llenar las Horas de Suspensión, vbCritical,"IMPORTANTE"
Me.[HORAS DE SUSPENSION].SetFocus
End Sub

Después en algún evento que tu consideres crítico. Es posible en el FormCurrent o donde tú lo consideres.

Private Sub Form_Current()
If IsNull(Me.[HORAS DE SUSPENSION]) And Me.SUSPENCION.Value = "SI" Then
MsgBox "Llena las Horas de.....",vbCritical,"FALTAN DATOS"
Me.[HORAS DE SUSPENSION].Setfocus
Exit Sub
End If

Ya me contarás. Saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas