¿Cómo copiar un registro de una tabla a otra, en la misma base de datos?

Les escribo para ver si me pudieran hacer el favor de ayudarme.
Tengo una tabla que se llama OPERADORES que tiene los campos: NOMBRE, EDAD, LUGAR DE TRABAJO, SEXO, NIVELGLUCOSA, NIVELCOLESTEROL, NIVELTRIGLICERIDOS, etc. Esta tabla concentra todos los datos de las personas que se le realizan exámenes médicos.
Otra tabla se llama HISTORIAL donde a partir del NOMBRE, con ayuda de un formulario, introduzco valores de los exámenes de NIVELGLUCOSA, NIVELCOLESTEROL, NIVELTRIGLICERIDOS. Etc. Esta tabla, como su nombre lo dice, almacena los datos de exámenes que se le hace a determinada persona (pueden ser varios a la misma persona).
Mi duda es, como hacer que, cuando yo meto valores en mi formulario de HISTORIAL, por ejemplo NIVELGLUCOSA = 95, este mismo valor (95) también se copie a la tabla OPERADORES en el campo NIVELGLUCOSA, asociado con el nombre de la persona que le hice el examen medico en ese momento. Así cada que yo hago un examen de NIVELGLUCOSA a determinada persona, siempre la tabla OPERADORES muestre el valor más reciente.
He estado viendo en tutoriales, y esto es lo más que pude hacer en VBA, pero no logro el objetivo, la verdad soy novata en esto :(
Dim BBDD As Database
Dim HISTORIAL As RecordSet
Dim OPERADORES As RecordSet
Dim VId As Integer
VId=NOMBRE
Set BBDD=CurrentDb
Set HISTORIAL=BBDD.OpenRecordset (" SELECT * FROM HISTORIAL WHERE NOMBRE = " & VNOMBRE )
If Not HISTORIAL.EOF Then
Set OPERADORES=BBDD.OpenRecorset ("OPERADORES")
OPERADORES.AddNew
OPERADORES!NOMBRE=HISTORIAL!NOMBRE
HISTORIAL!NIVELGLUCOSA=HISTORIAL!campo1
OPERADORES.Update
OPERADORESClose
End If
HISTORIAL. Close
BBDD. Close
Mi base de datos ya está casi terminada, solo me falta ese gran detalle.

1 respuesta

Respuesta
1

Te propongo dos opciones:

1ª/ Campo a campo de tu formulario, por si no los rellenas todos:

En el evento "Después de actualizar" de cada campo que quieras pasar a la otra tabla (lo de los niveles), le pones este código, cambiando el nombre del campo que se trate:

Private Sub NIVELGLUCOSA_AfterUpdate()

Currentdb.Execute "UPDATE OPERADORES SET NIVELGLUCOSA=" & Me.NIVELGLUCOSA & " WHERE NOMBRE='" & Me.NOMBRE & "'"

End Sub

Ese sería el código para actualizar el NIVELGLUCOSA, lo mismo sería con el reto de campos.

2ª/ Todos de una vez (tendrás que asegurarte que rellenas todos los campo, para evitar posibles errores):

En el evento "Antes de actualizar" del formulario, o en el evento "después de actualizar" de último campo que rellenes, o en el evento "al hacer click" de un botón que pongas para hacer el traspaso de datos, pones este otro código:

Private Sub ....

Currentdb.Execute "UPDATE OPERADORES SET NIVELGLUCOSA=" & Me.NIVELGLUCOSA & ", NIVELCOLESTEROL=" & Me.NIVELCOLESTEROL & ",  NIVELTRIGLICERIDOS=" & Me.NIVELTRIGLICERIDOS & "... WHERE NOMBRE='" & Me.NOMBRE & "'"

End Sub

En los puntos suspensivos sigues añadiendo tus campos siguiendo el mismo patrón.

Un saludo!


Añade tu respuesta

Haz clic para o

Más respuestas relacionadas