Introducir datos requeridos en un formulario...¿Cómo puedo evitar los mensajes de aviso?

Tengo un formulario (no vinculado) para insertar datos a una tabla... Hay varios campos requeridos en la tabla.

La introducción de estos datos es a través de una instrucción DoCmd.RunSQL "INSERT INTO " 

Cuando inserto estos datos y no introduzco los requeridos, me da 2 mensajes emergentes.

1º Microsoft Access no puede anexar todos los registros de la consulta...

2º ¿Desea guardar los cambios en el diseño del formulario?

Así que:

- Quiero que no aparezcan estos mensajes ya que me avisan de que no se introduce el registro (por campos requeridos)

- Quiero que salga un MsgBox avisándome de que el registro no ha sido introducido.

2 respuestas

Respuesta
2

Partiendo de que lo que te comenta Jacinto (un saludo, por cierto) para evitar los mensajes es totalmente correcto, aunque yo prefiero usar CurrentDb. Execute que DoCmd. RunSQL, y me ahorro los SetWarnings... comentarte dos cosas sobre los mensajes que te aparecen:

1º/ Si te dice que no se puede anexar todos los registros, es porque hay algún problema con tu consulta INSERT INTO, ya sea que hay campos requeridos que faltan, que hay datos incorrectos para algún campo (por ejemplo un texto en un campo numérico), que se duplicaría alguna clave... El propio mensaje ya te da pistas de por dónde van los tiros. Y como te dice Jacinto, deberías validar los datos antes de correr el INSERT, y en caso de que te falte algo, avisar sin ejecutar ese INSERT.

Una de las muchas formas de hacerlo  sería ésta: http://siliconproject.com.ar/neckkito/index.php/acerca-de/93-ejemplos-explicados/ejemplos-de-formularios/245-campos-obligatorios 

2º/ El segundo mensaje solo tiene sentido que te lo muestre si has hecho antes (manualmente o por código) algún cambio en el diseño del formulario que está pendiente de guardar. Ejecutar un INSERT nunca va a modificar el diseño del formulario...

¡Gracias!

¡Gracias!

Así he hecho-

1º DoCmd.set warnings False

2º Verifico antes y después el nº de registros que tengo en la tabla...

3º Gestiono los errores condicionando para que me avise con un formulario la introducción o no del registro.

Muchas gracias por tu aporte

Respuesta
1

Para que no te salga ese aviso: Antes de DoCmd.RunSQL... y Después de la misma ..

DoCmd.SetWarnings False

DoCmd.RunSQL........

DoCmd.SetWarnings True

Ahora bien, lo del mensaje, solo te lo va a generar si haces algún sondeo de los registros antes y despues de la Inserción de Datos. Ejemplo: Contar registros antes y después, pero entiendo que eso es un remedio no adecuado.

Si se ejecuta una Consulta de anexado, es para eso, "para que anexe", si no lo hace, hay que corregir la consulta para que cumpla su función. Un saludo >> Jacinto

¡Gracias!

Así he hecho-

1º DoCmd.set warnings False

2º Verifico antes y después el nº de registros que tengo en la tabla...

3º Gestiono los errores condicionando para que me avise con un formulario la introducción o no del registro.

Muchas gracias por tu aporte

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas