Access - Error cuando inserto datos de una tabla a otra

 
Vista:
sin imagen de perfil

Error cuando inserto datos de una tabla a otra

Publicado por anonymous (24 intervenciones) el 27/04/2018 13:00:08
Buenos días, quiero que la tabla bienes_inmuebles si tiene cambios que sea sobrescrita con los datos de la tabla bienes_temporal. Me sale un error y no me inserta los cambios. bienes_temporal viene de otra base de datos que anexo. No sé por qué puede ser el error, de una tabla a otra los campos claves se repiten y sospecho que sea eso, pero mi intención es que esos mismos registros sean actualizados con cambios. Pongo el código que estoy usando:

Anexar dos tablas iguales de distintas bases de datos: (kk.bienes_inmuebles --> catalogo.bienes_temporal)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Sub cmd_anexar_bienes_Click()
Dim rutaBDExt As String
Dim miSQL As String
Dim DBExt As Database
Dim reg As Recordset
 
'RUTA DE LA BASE HA ANEXAR
rutaBDExt = "C:\Users\Alberto\Desktop\kk.accdb"
'INSERT INTO <nombreTabla> SELECT <campos a anexar> FROM <nombreTablaExterna> IN '<rutaBDExterna>'
miSQL = "INSERT INTO bienes_temporal SELECT * FROM bienes_inmuebles IN '" & rutaBDExt & "'"
DoCmd.SetWarnings False
DoCmd.RunSQL miSQL
DoCmd.SetWarnings True
MsgBox "Anexión realizada correctamente", vbInformation, "BIENES INMUEBLES"
DoCmd.Close
 
'Ahora sobrescribimos los datos de la tabla catalogo.bienes_inmuebles por catalogo.bienes_temporal
miSQL = "INSERT INTO bienes_inmuebles SELECT * FROM bienes_temporal"
DoCmd.RunSQL miSQL
'  ---AQUI ES CUANDO OCURRE EL ERRROR---
End Sub


kk
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

Error cuando inserto datos de una tabla a otra

Publicado por Anonimo (3322 intervenciones) el 28/04/2018 10:14:14
Yo no aprecio un error, sino un mensaje de que hay una restricción que le impide COMPLETAR con pleno exito una acción.

En concreto AVISA de que cuatro registros son rechazados, porque de insertarlos se duplicaría un campo clave (un campo clave debería ser UNICO en el conjunto).

Es mas que probable que si se le comentan (o eliminan) las líneas que OCULTAN los mensajes de error (DoCmd.SetWarnings True/False) en el código que si funciona, ese mensaje TAMBIEN aparecería (de intentar añadir elementos duplicados).

Y razonando un poco lo que se pretende .... creo que se confunde la acción a aplicar, una cosa es 'insertar/añadir' y la otra 'Actualizar' ( que se correspondería con: ... 'Ahora SOBREESCRIBIMOS los datos de la tabla ....... ' )

Para actualizar, se utilizan las consultas de ACTUALIZACION cuya sintaxis se parecería a:
Update [bienes_inmuebles] set ........

Pero la sintaxis correcta mejor la logras con la ayuda del generador grafico de consultas y (no seria una mala idea) tener en cuenta que registro (y registro a registro) tiene los datos mas frescos .

De necesitar seguir esa línea (la de la inserción), lo correcto seria borrar los registros coincidentes (bien en la tabla origen o en la de destino), pues Access no permitirá saltarse las reglas de integridad de los datos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar