Juanjo Luna

MVP Microsoft 365 Apps & Services 2023

LinkedIn Learning Instructor

Presidente de Access User Groups España

CEO Luna-Soft

Desarrollador

Consultor Informático

Juanjo Luna

MVP Microsoft 365 Apps & Services 2023

LinkedIn Learning Instructor

Presidente de Access User Groups España

CEO Luna-Soft

Desarrollador

Consultor Informático

Blog Post

Actualizar datos entre dos bases de datos diferentes

19 de febrero de 2024 ACCESS, Consultas, El rincón de Happy

Pregunta

¿Cómo puedo de una manera sencilla actualizar datos entre dos tablas iguales pero que están en bases de datos diferentes? Querría saber si hay un método automático para poder agregar los registros nuevos y también para poder actualizar los registros que se hayan modificado.

Respuesta

Puedes crear una consulta de actualización y otra de datos anexados para cada uno de los casos. Eso sí, primero deberías crear una consulta que liste los datos de la “tabla externa”. Para una explicación de cómo hacerlo consulta este tema.

Pongamos un supuesto con unos datos simples. Tenemos, por un lado:

– Base de datos: “C:\bd1.mdb”
– Tabla: Tabla1
– Campos:
     – Id (numérico)
     – campo1 (texto)

Y por otro lado:

– Base de datos: “C:\bd2.mdb”
– Tabla: Tabla1
– Campos:
     – Id (autonumérico, clave primaria)
     – campo1 (texto)

Lo que se quiere es actualizar la Tabla1 de bd1.mdb, con los datos nuevos o modificaciones que hubieren en la Tabla1 de bd2.mdb.

En primer lugar deberíamos crear una consulta en bd1.mdb para leer los datos de Tabla1 de bd2.mdb. A esta consulta la llamaremos “Tabla1Externa”.

Lo haríamos con esta sentencia SQL:

SELECT *
FROM Tabla1 IN 'C:\bd2.mdb'

Después, para insertar los nuevos registros haríamos una nueva consulta de datos anexados con esta sentencia SQL:

INSERT INTO Tabla1
SELECT Tabla1Externa.*
FROM Tabla1Externa
WHERE Tabla1Externa.Id Not In (SELECT Id FROM Tabla1)

Por último para actualizar los registros de Tabla1 en bd1.mdb con los registros de Tabla1 en bd2.mdb, utilizaríamos esta otra sentencia SQL:

UPDATE Tabla1 INNER JOIN Tabla1Externa 
ON Tabla1.Id = Tabla1Externa.Id 
SET Tabla1.campo1 = Tabla1Externa.campo1

Como podéis ver, el hecho de crear la consulta para “ver” los datos de la tabla externa es lo que facilita en gran modo la construcción del resto de consultas. Al construir una primera consulta ésta aparece ya como un objeto de la propia base de datos e incluso podemos utilizar el editor de consultas de Access para nuestro fin, que siempre viene muy bien, sinceramente.

Créditos

con el fin de dar a conocer el trabajo de uno de los más grandes en el mundo de Access en español, y tras solicitar su permiso, replico este artículo de Juan M Afán de Ribera. Todos los derechos y autoría corresponden a él. Access & VBA FAQ – Actualizar datos entre dos bases de datos diferentes (archive.org)

Taggs:
Related Posts
Opciones de impresión a través de código

Pregunta Sé cómo imprimir un informe mediante código y sé cómo hacer para que aparezca el cuadro de diálogo imprimir,…

Totales por página

Cómo conseguir en un informe calcular sólo el total para cada página

Write a comment