Validar 1 TextBox y 1 ListBox para que no queden vacíos, si uno tiene datos y el otro no, muestre mensaje de "completar datos"

Tardes o noches, tengo el siguiente formulario:

El campo que dice escanear UPC se llama "esc_upc" y en donde esta la lista de defecto se llama "lista_def" y tengo el siguiente código IF en botón guardar:

______________________________________________________________________________________

If esc_upc & lista_def = Empty Then

MsgBox "VERIFICAR QUE LOS CAMPOS ESTEN LLENOS", vbOKOnly, "CAMPOS VACIOS"
esc_upc.SetFocus
DEFNOMBRE = Clear
Else

_____________________________________________________________________________________

Me funciona si los dos campos los dejo vacíos

Pero si uno tiene datos y el otro no, como sea me guarda los datos, tanto tenga esc_upc con datos o tenga seleccionado un defecto de la lista.

Lo que quiero es que si uno de los dos contenga datos no me deje avanzar, ya sea que seleccione un defecto y no tenga lleno el textbox esc_upc, o viceversa, que tenga lleno el textbox de esc_upc y no tenga seleccionado un defecto. Que obligatoriamente me pida que llene esos dos datos.

4 Respuestas

Respuesta
1

[Hola 

Prueba con esto 

Private Sub CommandButton1_Click()
'
    If esc_upc.Text = "" Or lista_def.ListIndex = -1 Then
    MsgBox "VERIFICAR QUE LOS CAMPOS ESTEN LLENOS", vbOKOnly, "CAMPOS VACIOS"
    esc_upc.SetFocus
    Exit Sub
    End If
End Sub
Respuesta
2

El problema es el operador tienes un And (&) si no estas vacíos los 2 no saldrá tu mensaje, tienes que cambiar el And por un or, en access yo lo haría así:

If IsNull(Me.esc_upc) Or IsNull(lista_def) Then
MsgBox "VERIFICAR QUE LOS CAMPOS ESTEN LLENOS", vbOKOnly, "CAMPOS VACIOS"
esc_upc.SetFocus
Exit sub
Else
 ....
End if
Respuesta
1

Ponlos en dos condiciones if separadas una para el listbox y otra para el textbox si una de las dos condiciones se cumple el código te sacara del programa sin capturar nada y te enviara directo al que este vacío

If esc_upc = Empty Then
 MsgBox ("Escanear UPC vacio"), vbOKOnly, "CAMPOS VACIOS"
 esc_upc.SetFocus: GoTo salida:
endif 
If lista_def = Empty Then MsgBox ("No selecciono defecto"), vbOKOnly, "CAMPOS VACIOS"
 lista.SetFocus: GoTo salida:
endif
'.....codigo si cumple la condicion
'
salida:
End Sub
Respuesta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas