Access & VBA FAQ
| | | |
Indice de temas
Tablas
Consultas
Formularios
Informes
Macros
Módulos
Base de datos
Miscelánea
API
Utilidades
Problemas
Cadenas
Fechas
Todos los temas
Consultas : Actualizar datos entre dos bases de datos diferentes
Autor/es:
Juan M Afán de Ribera
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.

Ejemplos:

 

Temas relacionados:

Consultas en bases externas

Consultas en bases externas con contraseña

 

Última actualización: 28/12/2004