Páginas

Como impedir campos vacios en access programando vba

Existe un modulo de programacion vba para impedir los campos vacios en access, ya que este es un problema muy comun cuando en los formularios graban registros dejando la mayoria de ellos SIN DATOS, este problema se soluciona...

Programando vba, aqui les dejo este codigo que NO Permitira que tu formulario grabe registros con datos incompletos.

Paso 1: Crea un Modulo, que le llamaras "ImpideCampoVacio"
Pegas el siguiente codigo:

Public Function CampoVacio(NomForm As Form, Cancel As Integer) As Boolean
' Codigo para impedir una accion . . . !!
' si existiese  algun campo vacio
On Error GoTo Err_CampoVacio_Click
Dim Campo As Control 'Variable tipo control

For Each Campo In NomForm 'Abro un Bucle
 ' Inpido los tipos de campo que deseo recorrer para analizar
    If TypeOf Campo Is TextBox Or TypeOf Campo Is ComboBox Then        If Campo.Name <> "ID" Then
            If Not IsNull(Campo) Then 'La condicion
                    Campo.BackColor = vbWhite 'se establece fondo blanco
                    'De no haber campo nulo dejo correr el codigo
                Else
                    Campo.BackColor = vbYellow 'Le pongo color para diferenciarlo
                    Campo.SetFocus
                    MsgBox "Para realizar esta Accion " & vbCrLf & _
                    "se requiere un valor para " & Campo.Name _
                    , vbExclamation, "Campo Vacio"
                    Cancel = True
                    End
                    Exit Function
                    'Si lo encuentro, detengo el codigo, aviso con un Msgbox
                    'y Situo el setfocus al campo vacio
            End If
        End If
    End If
Next Campo

'Si llegamos aqui es que no consigo campos nulos
'Y ejecuto el comando (Puedes colocar cualquiera)
'Abrir form, consultas, exportar a pdf, etc....

CampoVacio = False
Exit_CampoVacio_Click: 'Tratamiento de errores
    Exit Function
Err_CampoVacio_Click:
    MsgBox Err.Description
    Resume Exit_CampoVacio_Click
       
End Function


Paso 2: Mandas llamar esta funcion insertando esta funcion en algunos de los botones del formulario por ejemplo; el boton de "Grabar Registro" y quedaria de la siguiente manera:

If CampoVacio(Me.Form, 0) = False Then

DoCmd.RunCommand acCmdSaveRecord

End If

2 comentarios:

  1. Hola que tal Buenos dias..
    una pregunta como podria evitar campos vacios en access pero al pasarle un archivo de excel, ya he logrado que el archivo se carge atraves de un api pero me pone filas y columnas vacias que en el archivo de excel no tienen datos yo quiero que unicamente me tome las que tienen datos y obvio la primera sea la etiqueta de cada columna un saludo y gracias por su apoyo

    ResponderBorrar
  2. Hola copie y pegue el codigo y me dio un error de sintaxis estoy usando access 2019
    aqui me dio el error
    If TypeOf Campo Is TextBox Or TypeOf Campo Is ComboBox Then If Campo.Name <> "ID" Then
    Gracias por la ayuda

    ResponderBorrar