Update a tabla desde formulario no relacionado ACCESS

Comunidad nuevamente, quisieran por favor ayudarme con un acertijo en ACCESS 2013 que no eh podido resolver. Tengo un formulario que me sirve de acceso a otros formularios a través de contraseña, el formulario en cuestión traigo el registro de la tabla RegistroIngreso en donde veo el ultimo registro generado "id y nombre " en sus casillas de texto correspondiente. Lo que quiero es cuando salga del formulario usando el boton salir, me guarde registro "hora actual" en la columna "hora" de acuerdo a la fila del ultimo "id" de la tabla RegistroIngreso, conforme a ese criterio

Este es lo que quise usar

Private Sub Comando13_Click()
Update Tabla_RegistroUsuarios
Set Tabla_RegistroUsuarios.HoraSalida = Time()
WHERE (((Tabla_RegistroUsuarios.HoraSalida) = [Formularios]![PORTADA_ACCESO]![Txt_IdRegistroUsuarios]))
End Sub

Pero me da este error

1 Respuesta

Respuesta
2

El código sería así:

Private Sub Comando13_Click()
CurrentDb.Execute "Update Tabla_RegistroUsuarios " & _
                  "Set Tabla_RegistroUsuarios.HoraSalida = Time() " & _
                  "WHERE (((Tabla_RegistroUsuarios.HoraSalida) = [Formularios]![PORTADA_ACCESO]![Txt_IdRegistroUsuarios]))"
End Sub

Hola Sveinbjorn El Rojo, gracias por responder... ejecute el código pero me da este error

No se si me explique bien, lo que necesito es que cuando presione el botón, me guarde la hora actual del sistema en la columna HoraSalida de la "tabla_registrousuarios", en la fila del id que le indico en el texbox "Txt_IdRegistroUsuarios", cuyo registro corresponde al ultimo que se genero en la tabla_registrousuarios.

Agradeciendo tus conocimientos y ayuda...

Vale, eso me pasa por fijarme el el "error gordo" y no en la propia construcción de la SQL:

A ver así:

Private Sub Comando13_Click()
CurrentDb.Execute "Update Tabla_RegistroUsuarios " & _
                  "Set Tabla_RegistroUsuarios.HoraSalida = Time() " & _
                  "WHERE Tabla_RegistroUsuarios.IdRegistroUsuarios = " & Me.[Txt_IdRegistroUsuarios] 
End Sub

Estimado, me sigue enviando el mismo error...

Te adjunto los códigos que tengo en el formulario, puede que algo ahí te indique por el camino a seguir o mi error en querer ejecutarlo

Option Compare Database
Option Explicit
Private Sub Comando13_Click()
CurrentDb.Execute "Update Tabla_RegistroUsuarios " & _
                  "Set Tabla_RegistroUsuarios.HoraSalida = Time() " & _
                  "WHERE Tabla_RegistroUsuarios.IdRegistroUsuarios = " & Me.[Txt_IdRegistroUsuarios]
End Sub
Private Sub Comando14_Click()
DoCmd.OpenForm "Login"
End Sub
Private Sub Form_Current()
Me.Txt_IdRegistroUsuarios = DLookup("[Id_RegistroUsuarios]", "Tabla_RegistroUsuarios", "[Id_RegistroUsuarios]=" & DMax("[Id_RegistroUsuarios]", "Tabla_RegistroUsuarios"))
Me.Txt_Usuario = DLookup("[Usuario]", "Tabla_RegistroUsuarios", "[Id_RegistroUsuarios]=" & DMax("[Id_RegistroUsuarios]", "Tabla_RegistroUsuarios"))
End Sub
Private Sub Form_Open(Cancel As Integer)
    If IsNull(Me.OpenArgs) Then
        MsgBox "Acceso no autorizado", vbCritical, "Aviso"
        Cancel = True
    End If
End Sub
Private Sub Comando1_Click()
Dim IdUsuario As Integer
    If DLookup("[Formulario_NavRecepcion]", "Tabla_Usuarios", "[Id_Usuario]= " & Me.OpenArgs & "") = True Then
        MsgBox "Se abre modulo NavegacionPortada", vbInformation, "Aviso"
        DoCmd.OpenForm "Formulario_NavRecepcion", , , , , , IdUsuario
        Form_Formulario_NavRecepcion.TxtUsuario = Me.TxtUsuario
    Else
        MsgBox "Usted no tiene permiso para este modulo", vbCritical, "Aviso"
    End If
End Sub

Otro punto... ahora cuando quiero acceder al formulario por el formulario login, no me muestra nada, borre el código y volvió a la normalidad todo

te adjunto imagen de mi formulario, para referencia...

Perdón... esa no era... es esta...

Vamos a ver si me explico:

Private Sub Comando13_Click()
CurrentDb.Execute "Update Tabla_RegistroUsuarios " & _
                  "Set Tabla_RegistroUsuarios.HoraSalida = Time() " & _
                  "WHERE Tabla_RegistroUsuarios.IdRegistroUsuarios = " & Me.[Txt_IdRegistroUsuarios] 
End Sub

Con ese código se va a actualizar en la tabla Tabla_RegistroUsuarios el campo llamado HoraSalida con la hora actual del sistema (Time()) para aquel registro cuyo campo IdRegistroUsuarios coincida con el valor que haya escrito en el cuadro de texto del formulario llamado Txt_IdRegistroUsuarios

Y la sintaxis es correcta y no tiene ningún error.

Ahora, si alguno de los elementos (campo, tabla, cuadro de texto) no tiene ese nombre, lo has de comprobar tu y corregirlo en su caso. Yo sin tener la BD delante no lo puedo saber.

Por otro lado, el error que comentas (pocos parámetros) suele indicar que no se le pasa un valor al criterio del WHERE, lo que me lleva a pensar que el cuadro de texto no tiene valor cuando pulsas el botón.

¡Gracias! MAESTRO.... tenias razón, mi error fue de escritura me faltaba un dato lo regularice y funciona a la perfección....

MUCHAS PERO MUCHAS GRACIAS POR TU AYUDA Y CONOCIMIENTOS...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas