Cuadros de textos en formularios requeridos

Tengo un formulario en el que he colocado un botón que me llama a un subfomulario (Me. Subform. Requery).

En dicho formulario hay también varios Texbox y Cuadros de listas independientes (no están asociados a ninguna tabla). Lo que necesito es que al hacer click en el botón referido me salga un aviso si no están rellenos todos los Texbox y Cuadros de lista, e interrumpir el requery del subformulario.

He probado con los siguiente pero no funciona:

Private Sub BOTON_Click()
If (Me.Texbox1 = "" Or Me.Texbox2 = "" Or Me.Cuadrolista1 = "" Or Me.Cuadrolista1 = "") Then
MsgBox "Existen campos vacíos", vbCritical, "Error"
Exit Sub
Else
Me.Subform.Requery
End If
End Sub

1 respuesta

Respuesta
2

Una cosa es que un cuadro de texto esté vacío (devolverá un nulo) y otra es que deveulva una cadena vacía (el "") que estás comprobando.

Para estos casos tienes la función Nz(), que convierte los nulos a otro valor, o la función IsNull(), para comprobar si es nulo o no el contenido de un cmapo/control.

Podrías validar así:

If IsNull(Me.Texbox1) ...

Así te saltará si no escribes nada en el cuadro de texto, pero no si lo escribes y lo borras (ahí tendrás una cadena vacía)

If IsNull(Me.Texbox1) OR Me.Texbox1 = "" ...

Aquí te saltará si no escribes nada, o si lo escribes y lo borras

If Nz(Me.Texbox1,"")=""...

Igual que arriba, pero escribiendo menos

Otra forma más "profesional" es la que explico en este ejemplo: http://siliconproject.com.ar/neckkito/index.php/ejemplos-explicados/todos/93-ejemplos-explicados/ejemplos-de-formularios/245-campos-obligatorios 

Saludos.


Añade tu respuesta

Haz clic para o

Más respuestas relacionadas