Ayuda con código para actualizar datos de tabla de base de datos access desde un formulario

Hola de nuevo, siento ser tan pesado.
Todo funciona correctamente pero e intentado mejorar algunas cosas que me han sido imposibles de conseguir y se que son sencillas.
Lo primero es que quiero agregar la condición que actualice pro operario es decir que compare Nº Operario del formulario con el de la tabla. Ya que no me había dado cuenta que depende de cada operario.
Private Sub HORA_INICIO_LostFocus()
Me.Refresh
DoCmd.RunSQL "Update [Parte de Trabajo] Set [Hora Fin]=Form![Hora Inicio].value Where [HORA FIN] is null  and [HORA INICIO]<>Form![HORA INICIO].value"
Private Sub HORA_INICIO_LostFocus()Me.RefreshDoCmd.RunSQL "Update [Parte de Trabajo] Set [Hora Fin]=Form![Hora Inicio].value Where [HORA FIN] is null and [Nº Operario]<>Form![Nº Operario].value and [HORA INICIO]<>Form![HORA INICIO].value"
Y por ultimo quiero que al actualizar como lo hacia antes me salia un Msgbox y quiero que directamente no me aparezca ni tenga que aceptarlo.
Private Sub Grabar_Click()
On Error GoTo Err_Grabar_Click
    DoCmd.GoToRecord , , acNewRec
Exit_Grabar_Click:
    Exit Sub
Err_Grabar_Click:
    MsgBox Err.Description
    Resume Exit_Grabar_Click
End Sub
Private Sub Grabar_Click()On Error GoTo Err_Grabar_Click
    DoCmd.GoToRecord , , acNewRec
Exit_Grabar_Click:    Exit Sub
Err_Grabar_Click:    MsgBox Err.Description    Resume Exit_Grabar_Click    End Sub
Entiendo que son muchas preguntas y estoy robándote tiempo pero se agradece mucho tu ayuda.
Un cordial saludo y gracias de nuevo.

1 respuesta

Respuesta
1
Si lo que quieres es actualizar el registro anterior del operario que tienes en el registro activo, el que tienes en pantalla, tendrás que poner:
RefreshDoCmd.RunSQL "Update [Parte de Trabajo] Set [Hora Fin]=Form![Hora Inicio].value Where [HORA FIN] is null and [Nº Operario]=Form![Nº Operario].value and [HORA INICIO]<>Form![HORA INICIO].value"
para que te seleccione el operario y dentro de él el registro que tiene la hora final en blanco y la hora de inicio no coincide con la hora de inicio del formulario.
En cuanto al mensaje, supongo que será el mensaje que te da el propio access al actualizar (Se va a actualizar 1 registro...), esto lo tienes que poner en las opciones de access: Herramientas ---> Opciones ---> Modificar/Buscar ---> Confirmar aquí chequeas o deschequeas lo que quieras o no que te avise.
OJO esto es para cualquier BD que crees en esta aplicación de access ya que entra dentro de su configuración. Yo nunca deschequeo el Eliminaciones de Documento ya que si por error das, suprimir, por ejemplo a una tabla te la elimina sin preguntarte.
Por cierto... Las preguntas, como la cerveza, nunca, nunca es la última... siempre la penúltima. Hasta otra.
Gracias de nuevo, te doy razón con la comparación preguntas, cervezas je je.
Al final tu sentencia daba un error 424 pero revisando las dos sentencias que me enviaste he construido una que va perfecta, todo gracias a ti.
Un cordial saludo Serka

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas