¿Cómo guardar un campo calculado?
Tengo un formulario en el que registro las horas laboradas por cada usuario y la cantidad de horas se calcula en el evento AfterUpdate() con la siguiente formula txt_horas_trabajadas = [txt_hora_Fin] - [txt_hora_Ini], el problema que tengo es a la hora de guardar los datos, con el siguiente codigo no me guarda la horas que se muestran en el campo calculado:
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("tbl_Registro_Extras")
Dim msg As String, estilo, title As String
estilo = vbCritical + vbOKOnly
title = "Error en la inserción por falta de datos"
Msg = "No se han podido crear los registros solicitados por no existir ninguna entrada en el campo "
If IsNull(Me.txt_dia_laborado) Then
msg = msg & "Día Laborado"
MsgBox msg, estilo, title
Me.txt_dia_laborado.SetFocus
Exit Sub
End If
If IsNull(Me.txt_hora_Ini) Then
msg = msg & "Falta Hora de Inicio."
MsgBox msg, estilo, title
Me.txt_hora_Ini.SetFocus
Exit Sub
End If
If IsNull(Me.txt_hora_Fin) Then
msg = msg & "Fecha Hora de Finalización."
MsgBox msg, estilo, title
Me.txt_hora_Fin.SetFocus
Exit Sub
End If
If IsNull(Me.txt_horas_trabajadas) Then
msg = msg & "Horas Trabajadas."
MsgBox msg, estilo, title
Me.txt_horas_trabajadas.SetFocus
Exit Sub
End If
rs.AddNew
rs!dia_laborado = "" & txt_dia_laborado
rs!hora_inicio = "" & txt_hora_Ini
rs!hora_fin = "" & txt_hora_Fin
rs!horas_laboradas = "" & txt_horas_trabajadas
rs.Update
rs.Close
Set rs = Nothing
db.Close
MsgBox "Los datos se ingresaron satisfactoriamente", vbInformation, "Datos"
txt_dia_laborado = Null
txt_hora_Ini = Null
txt_hora_Fin = Null
txt_horas_trabajadas = Null
Leí en una página que consultaban lo mismo que la solución era poner en origen del control el nombre del campo de la tabla donde se debe guardar, si funciona, PERO al hacer esto me borra la cantidad de horas trabajadas del primer registro, esto sucede cuando se cierra y se abre el formulario