Controlar registro modificado en subformulario

A ver si pudieras ayudarme.
Tengo un Subformulario que me muestra unos datos de una tabla según unos filtros que pongo en el Formulario.
Todo bien salvo que necesito guardar en un campo Fecha_Modificación de la tabla, la fecha en la que me modifiquen un registro de la tabla por el Subformulario.

2 respuestas

Respuesta
1
Una manera de hacer lo que pides es la siguiente. Voy a suponer que el formulario principal se llama FormPrincipal, y también voy a suponer que en dicho form principal tienes el campo Fecha_Modificación (ligado a un registro en concreto)
Entonces:
1.- Pones tu subformulario en vista diseño.
2.- Sacas las propiedades del primer campo susceptible de cambios. Te vas a la pestaña Eventos -> Al cambiar y le generas el siguiente código:
...
Private Sub ...
If Me.Dirty = True Then
Forms!FormPrincipal.Fecha_Modificacón.Value = Date
End If
End Sub
...
Recuerda que debes cambiar FormPrincipal por el nombre de tu Formulario.
3.- Realizas la misma operación en el resto de campos (puedes hacer un copy-paste del código)
Ahora, cada vez que haya un cambio, el campo Fecha_Modificación se te actualizará con la fecha del sistema.
Respuesta
1
Si entiendo tu pregunta quieres guardar la fecha en que se modifica un registro desde un subformulario en un campo llamado Fecha_Modificación que está en la misma tabla queue es origen del subformulario.
Para ello, si incluyes ese campo en el subformulario debes de o bien ocultarlo o mostrarlo pero bloqueado para que no puedan editarlo los usuarios (es conveniente cambiar el color del fondo si lo muestras bloqueado para que el usuario acabe reconociendo este tipo de campos, en general calculados, que solo muestran información pero no pueden ser editados).
Añades a continuación el código que te muestro asociado al evento 'Después de actualizar' del subformulario.
Private Sub Form_AfterUpdate()
On Error GoTo Err_Form_AfterUpdate
Me.Fecha_Modificación = Now
Exit_Form_AfterUpdate:
Exit Sub
Err_Form_AfterUpdate:
MsgBox Err.Description
Resume Exit_Form_AfterUpdate
End Sub
Con ello estás inscribiendo la fecha y hora actual en el campo Fecha_Modificación siempre que se actualice (cambie en algún campo algún dato) el registro del subformulario. Al estar asociado a este evento del subformulario, solo se ejecutará cuando el registro se modifique desde el. Puedes actualizarlo desde tablas... sin que se inscriba la fecha hora en el registro.
Hola Buenos días,
Muchas gracias por la respuesta. Gracias a otro experto pudimos dar con el problema y la solución fue más o menos la que acabas de plantear.
Mil gracias de todos modos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas