Como copiar registros de dos tablas una dependiente de la otra a otras de la misma estructura solo que en otra base de datos

Estos son los dos archivos que son dependientes uno a varios los cuales necesito trasladar solamente los registros con fecha entre 1/1/2019 al 28/1/2019. Lo he hecho con una consulta para anexar registros y me copia unicamente los registros que están en la tabla que dice PRODUCCIÓN CENTRO pero no los registros registrados en la tabla detalle producción centro. Lo que yo no entiendo es que debería de actualizar la otra tabla en cascada de igual manera como lo hace cuando se eliminan

1 respuesta

Respuesta
2

Hay varias cosas que no entiendo. En la imagen que pones, en la consulta sólo hay campos de la tabla Producción Centro. Entonces ¿que pinta en el diseño la tabla Detalle Producción.?

Por el hecho de que dos tablas estén relacionadas uno a varios, con integridad referencial, etc no quiere decir que cuando a una le dés la instrucción de que inserte sus registros en otra, también lo hagan las relacionadas.

Por otro lado, actualizar en cascada los registros relacionados quiere decir simplemente que, por ejemplo, si en la tabla1 cambias el Id de 1 a 5, todos los registros de la tabla relacionada que tuvieran como id 1 te los pone como 5. Nada más.

Por comodidad he puesto la tabla Compras(destino) exactamente igual a la tabla Ventas(origen) y lo mismo con DetalleCompra y DetalleVenta.

Si tengo la tabla Ventas

No le hagas caso a los números

Y tengo la tabla Detalleventa

Tampoco le has caso al número de registros

Construyo una consulta donde le digo que inserte determinados valores de la tabla DetalleVenta en la tabla DetalleCompra

En el formulario, que podía ser cualquiera, pero aprovecho el que ya está.

Escribo la fecha inicial y la final y pulso el botón, que no sería necesario

En el evento Al hacer clic del botón tengo puesto

Private Sub Comando13_Click()
DoCmd.RunSQL "insert into compras select * from ventas where fechaventa between forms!ventas!fechainicial and forms!ventas!fechafinal"
DoCmd.OpenQuery "consulta1"
End Sub

¡Gracias! Muy agradecido por la aclaración a mi pregunta.Lo que yo necesito es: es pasar los registros que están en una diferente base de datos a la actual por que son registros de fechas distintas y las necesitan en la base actual. Gracias por el interés voy a probar la solución

Ah!. En ese caso casi te convenía importar las tablas de la base de datos Origen. Así cada modificación que hagas en ella, automáticamente se ve reflejada en la de destino

¡Gracias! Muchas gracias hasta el día de hoy estoy probando la solución te cuento

¡Gracias! Hoy he probado hacer la copia de registros por medio de la solución indicada en este ejercicio. Excelente funciono muy bien ! Muchas gracias!..

Edgar, hoy me he dado cuenta(que cabeza la mía) que decías de pasar datos a otra tabla de OTRA base. Chico, lo siento. Lo único que tendrías que hacer sería poner, en el formulario donde escribes, en algún evento

DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO Clientes ( NombreCliente, NombreContacto,cargocontacto,ciudad,pais ) IN 'C:\Users\cabarcos\Documents\Borrar\Usar.accdb'" _
& " SELECT NombreCliente, NombreContacto,cargocontacto,ciudad,pais FROM Clientes WHERE IdCliente=" & Me.IdCliente & ""

Los campos origen y destino no tienen porque llamarse igual, pero sí ser de datos coherentes.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas