Migración de Datos de una Tabla a Otra

Tengo una BD con 4 tablas: Una tabla llamada TANT-REGISTRO que no esta relacionada con ninguna otra tabla y posee los siguientes campos:
ID_EMPLEADO
1er NOMBRE
2do NOMBRE
1er APELLIDO
2do APELLIDO
FECHA_INGRESO
Cargo
Sueldo
Sucursal
DIR_RESIDENCIA
TEL_RESIDENCIA
EPS
CTA_NOMINA
Las otras 3 tablas forman un Modelo Entidad Relación y están normalizadas:
TNUE-REGISTRO con los mismos campos de TANT-REGISTRO
TNUE-CARGOS: CodCargo y Nombre
TNUE-EPS: CodEps y Nombre
TNUE-SUCURSALES: CodSucursal y Nombre
Necesito migrar todos los registros que se encuentran en la tabla TANT-REGISTRO a la tabla TNUE-REGISTRO pero me encuentro con el siguiente inconveniente:
En la tabla TANT-REGISTRO en los campos CARGO, EPS Y SUCURSAL se encuentran almacenados datos de tipo texto (Gerente, Colmedica, Bogotá) pero en la tabla TNUE-REGISTRO en estos mismos campos se debe almacenar datos de tipo numérico (10, 107, 2) que corresponden a los códigos de cada uno de estos campos relacionados con sus respectivas tablas maestras.
Solicito su colaboración en el sentido de obtener un código dentro de un botón para llevar a cabo este proceso de migración realizando las validaciones respectivas para que los registros sean migrados de forma completa conservando su integridad.

1 respuesta

Respuesta
1
Hummmm.. en eencia lo que necesitas es lo siguiente:
Crear un recordset de la tabla con los datos
Y otros más de las tablas sin datos ; leer de la tabla con datos e ir pasando a las tablas sin datos los campos que necesites ; seria algo así:
Dim rstdatos As DAO.Recordset
Dim rstsindatos1 As DAO.Recordset
Dim rstsindatos2 As DAO.Recordset
Set rstdatos = CurrentDb.OpenRecordset("select * from tabladatos")
Set rstsindatos1 = CurrentDb.OpenRecordset("select * from tablasindatos1")
Set rstsindatos2 = CurrentDb.OpenRecordset("select * from tablasindatos2")
rstdatos.MoveFirst
rstsindatos1.movefirst
rstsindatos2.movefirst
While Not rstdatos.EOF
' comparacion y acciones que quieras
' copias el campo que necesites  en  el campo adecuado!!!
rstsindatos1.AddNew
if rstdatos.eps = "colmedica"  then
     rstsindatos1.eps = 107
   '   y  otras  cosass mas
else
Rstsindatos1.Nombre = Rstdatos.nombre
Rstsindatos1.Update
rstdatos.MoveNext
Wend
' cierra  todos  lo   recordsets 
rst.close
set rst = nothing
Escrito rápidamente pero como veo que tienes idea de programación entonces te lo doy muy resumido; de todas formas si no entiendes no dudes en volvber a preguntar; de lo contrario evalúa la respuesta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas