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
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
Hola que tal Buenos dias..
ResponderBorraruna 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
Hola copie y pegue el codigo y me dio un error de sintaxis estoy usando access 2019
ResponderBorraraqui me dio el error
If TypeOf Campo Is TextBox Or TypeOf Campo Is ComboBox Then If Campo.Name <> "ID" Then
Gracias por la ayuda