Access - Currentb.Execute no me hace la inserción

 
Vista:
sin imagen de perfil
Val: 2
Ha aumentado su posición en 8 puestos en Access (en relación al último mes)
Gráfica de Access

Currentb.Execute no me hace la inserción

Publicado por Beni (23 intervenciones) el 02/07/2013 16:14:05
Tenía una instrucción del tipo:

Currentdb.Execute "INSERT INTO TABLA1(Codigo, Nombre, Fecha) SELECT Codigo, Nombre, Fecha FROM TABLA2"

Los datos de la tabla2 los obtengo de una aplicación externa, haciendo un SELECT * INTO TABLA2
Aunque me fijé que esa aplicación externa me estaba pasando una fecha errónea. El formato de una de las fechas era 01/07/201 (toda la aplicación está configurada para usar dos dígitos para el año)

Lo curioso es que al ejecutar la instrucción de inserción con el Execute, no me genera ningún error, pero como consecuencia de ese error, no me inserta ningún valor en la TABLA1

Si ejecuto esa inserción como consulta sí que obtengo un mensaje que dice:
"... no puede anexar todos los registros en la consulta de datos anexadas.
... estableció 1 campos a Nulo debido a un fallo en la conversión de tipos ..."

pero en este caso aparece un mensaje que te permite cancelar o continuar con la ejecución, pudiendo entonces cargar los demás datos en la TABLA1

Sabe alguien si a partir de código y usando esa llamada (currentdb.Execute) se puede forzar a que un caso de estos me lo de como erróneo y pueda por lo menos gestionarlo como error (consiguiendo así que no continue con la ejecución)?"
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Currentb.Execute no me hace la inserción

Publicado por deneg_nhj (348 intervenciones) el 03/07/2013 23:57:48
Hola Beni

Cuando utilices Currendb.execute y necesites validar si no hubo errores deberás usar la opción dbFailOnError, pero ademas deberás de tener en el código de VBA un manejador de errores.

Algo parecido a lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
sub sExecQry
On Error Goto CtrlErr
 
dbLocal.Execute "Insert into xCampo select xCampo from xTable ", dbFailOnError
 
exit sub
CtrlErr:
 
msgbox "Falló el metodo Execute"
 
End Sub



Saludos!
deneg_nhj
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar