Generar Históricos en Access mediante VBA

Hola en está ocasión me gustaría solicitar su ayuda para que me pudieran dar un ejemplo.
Lo que quiero hacer es que tengo una base con dos tablas idénticas, en estas el primer campo es expedientes, el segundo nombre y el tercero es puesto.
Lo que quiero hacer es que cuando tenga que actualizar la primera tabla, tomes los datos guardados y los pase a la otra tabla donde se generan los históricos.
Suponiendo tengo a:
Exp Nombre Puesto
10 Juan Pérez Subdirector


y le voy a cambiar el puesto a Director
Pero que esos datos de que era subdirector se vayan a la otra tabla y guarde todos los cambio que le he hecho, mientras la principal solo se actualiza

Tabla 1
Exp Nombre Puesto
10 Juan Perez Director

Tabla 2
Exp Nombre Puesto
10 Juan Perez Subdirector
10 Juan Perez Supervisor
Etc.

Ojalá me puedan orientar... Gracias por su atención

1 respuesta

Respuesta
1

Yo tendría un formulario con 2 cuadros combinados, uno para elegir el expediente y otro para elegir el cargo, los llamaré selExp y selPuesto respectivamente.

en el 1º:

Nombre: selExp

Origen de la fila: Select Exp, Nombre, Puesto from Tabla1 order by Exp

Nº de columnas: 3

Columna dependiente: 1

en el 2º:

Nombre: selPuesto

Origen de la fila: aquí serian los distintos puestos que tengas, no se si los tienes en una tabla o los tendrías que escribir directamente.

Un botón que llamaremos Enviar, en el código de este botón:

DoCmd.RunSql "Insert Into Tabla2 (Exp, Nombre, Puesto) values ('" & form!selExp.Value & "', '" & form!selExp.column(1) & "', '" & form!selExp.Column(2) & "')"

DoCmd.RunSql "Update Tabla1 set Puesto='" & form!selPuesto.Value & "' where Exp='" & form!selExp.Value & "'"

Es decir, en el 1er cuadro combinado eliges el expediente y en el 2º el puesto nuevo.

Con el botón primero insertas el registro en la tabla2 tal cual está en la tabla1 y después actualizas el registro seleccionado en la tabla 1 con el dato del cuadro combinado selPuesto

Supongo, obviamente que el nº de expediente es único para cada nombre.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas