Problemas con base de datos

Hola tengo problemas con unas tablas para ver si me puedes ayudar, El problema es el siguiente:
Primero estoy trabajando con Access 97 y Visual basic 6 y la conexión a Base de datos con DAO.
Tengo una base de datos llamada en este caso BD170106.mdb que contiene una serie de tablas pero me interesan dos, te doy la estructura de la tabla y un registro de ejemplo
Primera tabla: ObraEqui
CodEqu
CodFam
Descri
CosEqu
CosDia
Deprec
Transp
FecEqu
Dep01
Provee
Man01
Rep01
TipEq
Esta tabla posee 26 registros
Segunda tabla: ObraApinEqui
CodObra
CodPar
NumPar
CodIns
CanIns
CosIns
Deprec
CodFam
Contad
Esta tabla tiene 2454 registros
Mi problema es que debo copiar los 2454 registros en otra tabla de otra base de datos
Entonces esta base se llama Clone1.mdb y la tabla Equipos que tiene la siguiente estructura
Tabla:Equipos
ID
Partida
Código
Descripción
Cantidad
Precio
Depreciación
Total
En esta tabla ID es un campo autonumérico
Total es un calculo de depreciación*precio*cantidad
Utilice la siguiente instrucción de prueba:
Set rs = db.OpenRecordset("select * from ObraApinEqui")
Set rs1 = db1.OpenRecordset("select * from Equipos")
db1.Execute "insert into Equipos (Partida, Cantidad, Precio, depreciacion) select NumPar , CanIns , CosIns, Deprec from ObraApinEqui in 'C:\Mis documentos\BD170106.mdb'"
Y copio los registro de una tabla a otra, pero mi dilema es para colocar el campo descripción que no se encuentra en la tabla de la que copie sino en la otra que tiene 26 registros y tienen a nivel de registro la palabra común ejem HERR2 pero el campo tiene nombre diferentes en ambas tablas y por lo tanto no se como puedo hacer para tomar como referencia y colocar en la descripción por ejemplo trabajo de herrería que se encuentra almacenado en la tabla ObraEqui

1 respuesta

Respuesta
1
Te entiendo, a ver las relaciones en access las puedes hacer entre dos tablas por campos QUE NO NECESARIAMNTE SE LLAMAN IGUAL es decir (No me dijiste que campo contenía la palabra HERR2)... Descri de ObraEqui, y lo quieres relacionar con el campo Contad de ObraApinEqui (se que me puedes decir que estas dos no son y no tienen nada que ver, pero es simple ejemplo)...
Bueno, como te venia diciendo puedes relacionar dos campos QUE SE LLAMEN DIFERENTE, lo importante es el tipo de datos DEBEN SER IGUALES, es decit Texto ambos, y listo al hacer la relación te puedes traer el dato que necesitas de la tabla relacionada...
EL PROBLEMA SI LA RELACIÓN NO DA UNO A UNO, es decir el resultado de la relación puede haber varios registros de un lado, LOS 2254 REGISTRO SE TE PUEDEN AUMENTAR CONSIDERABLEMENTE ...
Bueno la nueva sintaxis seria algo como así:
*************************
...
Db1.Execute "insert into Equipos (Partida, Cantidad, Precio, depreciacion,descripcion) select NumPar , CanIns , CosIns, Deprec,Descri from ObraApinEqui INNER JOIN ObraEqui ON ObraApinEqui.Contad = ObraEqui.Descri in 'C:\Mis documentos\BD170106.mdb'"
************************
Como puedes ver la parte de FROM tiene la relación entre las dos tablas, modifica esta parte según el criterio de relación entre las tablas NO SE TE OLVIDE, NO IMPORTA EL NOMBRE ES IMMMMPPPOOORRRRRTANTE EL TIPO DE DATOS...
Att:telemaco

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas