En un formulario de access eliminar un registro si uno o varios campos están blanco

Cómo puedo hacer para eliminar un registro, al pasar a otro registro, ¿si uno o varios campos no se cargaron o se cargaron con un carácter?

1 Respuesta

Respuesta
2

Hacer lo que quieres "al momento" podría crearte registros que te mostraran los valores de los campos como #Eliminado. El problema de refrescar el origen de datos del formulario es que siempre te situaría, tras el refresco, en el primer registro.

Una solución para que el proceso se fuera realizando cuando navegaras por los registros sería, en el evento de formulario "Al activar registro", escribir algo así como:

...

Private sub...

If Not Me.NewRecord Then
If Len(Me.CampoX) = 1 Then 'Longitud del campo igual a uno
DoCmd.SetWarnings False
DoCmd.RunCommand acCmdDeleteRecord
DoCmd.SetWarnings True
End If

End sub

---

Otra solución sería eliminar los registros de golpe al cerrar el formulario. Para eso, en el evento "Al cerrar", el código sería:

....

Private sub...

CurrentDb.Execute ("DELETE FROM NombreTabla WHERE len(Campo)=1")

End sub

...

Ahora bien, en tu pregunta indicas "si uno o varios campos... o un solo carácter". Y ahí ya no te puedo dar una respuesta a la construcción de la condición de filtro, dado que puede haber varias construcciones posibles en función de lo que necesites. Lo que tendrías que hacer es construirte la condición where con las diversas opciones que necesites, uniéndolas con el operador lógico OR.

Por ejemplo, si Campo1 no puede quedar nulo, Campo2 no puede ser nulo o debe tener una longitud mayor a un carácter, la expresión sería:

If isnull(me.Campo1) or isnull(me.Campo2) or len(Campo2)= 1 then

para el primer supuesto, o

WHERE isnull(Campo1) or isnull(Campo2) or len(Campo)=1"

Para el segundo.

A ver si con esto puedes sacar algo en claro.

End If

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas