Access - Indexar y machacar

 
Vista:
sin imagen de perfil

Indexar y machacar

Publicado por anonymous (24 intervenciones) el 23/04/2018 15:16:47
Buenos días, desde una base de datos principal tengo un botón con el que indexo los registros de una tabla de otra base de datos, ambas bases de datos son totalmente iguales, adjunto el código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub Comando91_Click()
'ANEXADO BIENES INMUEBLES
Dim rutaBDExt As String
Dim miSQL As String
Dim DBExt As Database
Dim reg As Recordset
rutaBDExt = "C:\Users\Alberto\Desktop\kk.accdb"
'Es decir: INSERT INTO <nombreTabla> SELECT <campos a anexar> FROM <nombreTablaExterna> IN '<rutaBDExterna>'
miSQL = "INSERT INTO bienes_inmuebles 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
End Sub

Todo funciona sin embargo, si en la base de la que importo los registros hay cambios que quiero que se reflejen en la principal, que tiene registros antiguos, no me machaca sino que mantiene lo antiguo de la base de datos principal. ¿Habría alguna manera de que me los machacase, me lo sobrescribiese?
Muchas gracias por su atención, un cordial saludo.
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
Imágen de perfil de Norberto
Val: 1.094
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Indexar y machacar

Publicado por Norberto (753 intervenciones) el 24/04/2018 09:17:44
Hola.

Con lo de indexar me imagino que te refieres a anexar.

La respuesta a tu pregunta es NO. Un no rotundo. Estamos hablando de dos tablas totalmente independientes ubicadas en dos bdd distintas y tal y como lo tienes planteado (por medio de una consulta de anexar) no se puede lo que pretendes. Si quieres que los datos se mantengan actualizados debes de vincular la tabla de bienes_inmuebles de kk.accdb. De esta manera solo existe una tabla usada desde dos bdd diferentes.

Un saludo,

Norberto.
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
sin imagen de perfil

Indexar y machacar

Publicado por anonymous (24 intervenciones) el 24/04/2018 10:47:04
Buenos días, me equivoqué, es anexar a lo que me refiero, perdón. Ayer lo estuve revisando y tengo un error en "DoCmd.SetWarnings False", este apartado me oculta los errores que puedan ocurrir durante el proceso, cuando anexaba realmente no se sobrescribían los datos antiguos porque habían duplicados, entonces un compañero me aconsejó que como anexar no te permite actualizar (hacer un update) entre las tablas al no estar en la misma base de datos, pues creara una tabla vacía, anexara los datos a dicha tabla y luego un actualizado de la tabla con el contenido, es decir, un "update" y luego vacío la tabla de nuevo.
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

Indexar y machacar

Publicado por Anonimo (3316 intervenciones) el 25/04/2018 00:16:18
Yo generaría DOS consultas, una de anexado (para añadir los registros que le faltan o son nuevos) y la otra de Actualización, para que aquellos registros (que coincidan en el ID) tomen los nuevos valores.

Los registros que la consulta anterior añadió, estarán en ambas bases y tambien serán actualizados (aunque en su caso se podría considerar que 'se han refrescado').

Si se dieran las adecuadas circunstancias (que algunos registros de la tabla existente, sean mas 'frescos' que los de la tabla que se va a anexar), se podría aplicar la condición de que 'basados en la fecha' (porque se supone que habrá ese dato también) solo actualice aquellos cuya fecha sea mas alta que los existentes.
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