Validar que no hayan Textbox ni combobox vacíos en un formulario y si los hay, se desactive un botón.

Con esta función, pretendo controlar que no hayan campos vacios en un formulario:

Public Sub CamposVacios()

If CmbGenero.Value = "" Or CmbGrado.Value = "" Or TxtApellidos.Text = "" Or TxtNombres.Text = "" Or _
TxtCedula.Text = "" Or TxtEstatura.Text = "" Or TxtPeso.Text = "" Or TxtSistolica.Text = "" Or TxtDiastolica.Text = "" Then
CmdGuardar.Enabled = False
Else
CmdGuardar.Enabled = True
End If

End Sub

No se si haya una forma más técnica de hacerlo, más corta y más general.

Mi formulario está compuesto por textbox, combobox y dtpicker.

Si uno de los anteriores, está vacío, el botón guardar o actualizar no debe estar disponible.

2 Respuestas

Respuesta
2

Han colgado la pregunta en el tablón de Access, por eso te respondo en lo mismo.

Yo pondría, en el evento al activar el registro del formulario

Dim ctl As Control
For Each ctl In Form.Controls
If IsNull([ctl]) Then
MsgBox "Hay algo que falla", vbOKOnly, "No aviso mas!"
End If
Next

Así, cuando en un registro haya algún control, sea el que sea, nulo, te aparece el mensaje. Lo único que debes hacer es cambiar lo de msgbox... por lo de

Cmdguardar.ena...

También lo puedes poner en el evento al hacer clic del botón., y así no tienes que inhabilitarlo, o en otro evento cualquiera, todo depende como trabajes con el formulario.

Respuesta
1

H o l a:

No sé en qué momento o cómo llamas al procedimiento CamposVacios, pero algo más técnico y más general podría ser así:

Public Sub CamposVacios()
'Por.Dante Amor
    CmdGuardar.Enabled = True
    For Each ctrl In Controls
        If TypeName(ctrl) = "TextBox" Or TypeName(ctrl) = "ComboBox" Then
            If ctrl.Value = "" Then CmdGuardar.Enabled = False
        End If
    Next
End Sub

Tal vez con 5 ó 6 controles no el código no sea menos, pero si tuvieras que validar 20 campos, entonces la opción es más práctica.



's a l u d o s

:)

¡Gracias! Gracias Dante. Voy a probarla ya mismo.

La función CamposVacios la llamo en el evento Change de cada textbox y de cada combobox. En que control o evento me recomiendas utilizarla? 

Esto puse en mi respuesta:

"

No sé en qué momento o cómo llamas al procedimiento CamposVacios

"

No sé cuál es tu idea, que cada vez que se salgan de un campo validar todo o cuando vayas a pasar la información a la hoja.

Yo te recomiendo que hagas la validación cuando presionas el botón para pasar la información a la hoja.

Pero tú sabes mejor qué tan preciso quieres que sea la validación de cada dato.

'sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas