Tengo un formulario en access, como evito que se dejen cuadro de textos en blanco

Quiero que cuando el usuario final de la aplicación este llenando el formulario, y por error le de clic al botón guardar y algún cuadro de texto este en blanco le presente un mensaje iniciando que debe llenar todos los cuadros del formulario.

3 respuestas

Respuesta
2

En el botón de Guardar simplemente puedes poner

For Each Control In Form.Controls
If Control.ControlType = acTextBox And IsNull([Control]) Then
MsgBox "Debe llenar los cuadros de texto"
Exit Sub
Else
DoCmd.RunCommand acCmdSaveRecord
End If
Next

Así, si se deja algún cuadro te aparece e mensaje, supongamos que se sigue dejando uno en blanco y vuelve a pulsar guardar, le vuelve a aparecer el mnsaje. Cuando todos los cuadros estén llenos, te guardrá el registro.

en el botón guardar tengo este código

Private Sub CmdGuardar_Click()
For Each Control In Form.Controls
If Control.ControlType = acTextBox And IsNull([Control]) Then
MsgBox "Debe llenar los cuadros de texto"
Exit Sub
Else
DoCmd.RunCommand acCmdSaveRecord
End If
Next
Call PresentarBotones
Me.CmdGuardar.Enabled = False
End Sub

las que están en negrita son funciones para el formulario, mi pregunta es por que me sale el cuadro de texto del depurador de access  y abre visual  Basic y  no el cuadro de texto del msgbox,  

Estas llamando a una función que no tienes definida, a menos que sea una función pública.

Como tengo tu correo te mando un ejemplo.

¡Gracias! 

Revise el Ejemplo que  me enviaste, mi pregunta es donde coloco el llamado que hago a la función para habitar los botones esta función esta en un modulo, si la coloco entes del código que pones en el ejemplo o al final

gracias por tu pronta respuesta.

En principio debes ponerlo justo después de docmd. Runcommand accmdsave record, ya que lo de guardar el registro sólo se ejecuta si todos los cuadros de texto están rellenados.

Respuesta
2

Benjamin: La forma más simple que hay para lo que comentas, es ir a la Tabla en Vista de diseño, y en cada campo que quieras que se llene de forma obligatoria, le pones >> Requerido en "Si".

Un saludo >> Jacinto

¡Gracias! Muchas Gracias 

gracias por tu ayuda, me funciona aunque, cuando le doy al botón del aviso que  me sale se desactiva el botón guardar y tengo que comenzar de nuevo a llenar todos los cuadros de textos,)tengo una función que cuando se le da clic a nuevo dato, se desatiban los demás botones), en dos cajas de texto se escribe números, en una numero y en otra moneda, que hago para que cuando se coloca  solo un cero lo reconozca como nulo y pida colocar valor en esas cajas de texto,

un caja Tiene el Año y cuando le doy a agregar nuevo dato la caja se coloca un 0, y ese cero lo reconoce como valor cuando lo que debe escribir es el año,

en la otra es Dinero, cuando le doy a nuevo se aparece $0.00, quiero que esto lo reconozca como nulo, para que tengan que escribir un valor,

gracias por tu ayuda.

Benjamin: Para evitar lo que comentas no necesitas código ni que interprete los "Ceros" como Nulos.

Basta con que vayas a la "Vista de Diseño" de la Tabla y le quites el "Valor predeterminado", porque presumo que tiene 0. Ya me contarás. Mis saludos >> Jacinto

¡Gracias! 

Muchas Gracias eso me funciona muy Bien Gracias por tu Asisitencia

Hice lo que me dijiste,

no me deja guardar con campos en blanco, muchas gracias, pero me gustaría que en lugar de salir el cuadro de error en tiempo de ejecución, saliera un mensaje y que al darle en aceptar envié el cursor al cuadro en blanco,

muchas Gracias 

Bemjamin: Esta noche ya es tarde aquí, pero mañana te enviaré un código bastante completo para el manejo de "Controles" sin rellenar. Mis saludos >> Jacinto

¡Gracias! 

Muchas Gracias 

Feliz Sueño, a qui es de tarde temprano en la noche 

muchas gracias por tu ayuda 

Respuesta
1

Tienes que hacer validaciones

Por Ejemplo:

Private Sub Guardar_Click()
If IsNull(Me.Campo1) Then
    MsgBox "Mi campo1 es requerido" , vbInformation, "AVISO"
ElseIf  IsNull(Me.Campo2) Then
   MsgBox "Mi campo1 es requerido" , vbInformation, "AVISO"
Else 
    'Inserta Datos
End If
End Sub

En el evento al hacer click de tu botón de guardar . Validas tus campos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas