Poner fecha/hora al cumplimentar check list

Tengo una consulta llamada CHEQUEO que tiene cinco columnas

"Solicitud" en formatoTexto

"check list1"

"check list2"

"check list3"

"check list4"

Lo que necesito es crear un cuadro de texto que si comprueba que los cuatro check list están marcados me ponga la fecha/hora, si no están marcados todos que lo deje en blanco.

1 Respuesta

Respuesta
1

Si tengo la tabla

Y construyo la consulta donde le añado un campo llamado fecha con el valor que ves en la ventana de zoom

La suma es -4 porque el valor de una casilla de verificación cuando está "marcada" es -1

Cuando la abro

¡Gracias! Es una muy buena opción.

Hola de nuevo. Como siempre suele pasar hay un pequeño problema. El código funciona perfectamente, he sustituido el fecha() por Now() para que me salga también la hora. El problema es que cada vez que accedo al formulario me cambia la hora. ¿Habría alguna forma de bloquear la primera hora y que ya no existiera la posibilidad de que cambiase? 

Pero no decías nada de un formulario. En caso de ser en un formulario, y, por lo que supongo, será un formulario continuo, si el cuadro de texto no tiene origen de control, te va a repetir en todos el mismo valor.

Te aconsejaría que en la misma tabla añadieras un campo, no tiene porque llamarse igual que el cuadro de texto, (al que para el ejemplo llamaremos FechaHora). En las propiedades de Fechahora, en Origen del control le pones ese campo de la tabla y en Eventos-Al recibir el enfoque, crea un procedimiento de evento y pon

If me.newrecord then

        if a+b+c+d=-4 then

        fechahora=now()

        end if

End If

Me explico, si estás en un registro nuevo, y pones el cursor en el cuadro de texto, comprueba si se cumple la condición de que todas las casillas estén marcadas. Si es así, te pone el valor de Now().

Lo de un registro nuevo es para evitar que si pusieras el cursor en un cuadro donde ya lo hubiera calculado no te modifique el valor que tenía guardado en la tabla.

Funciona!! Pero la condición no sería que el registro fuese nuevo, es posible que el operador haya trabajado sobre ese registro y tenga que entrar al cabo de un rato. ¿la condición podría ser que el campo FechaHora fuese nulo y que todas las check estuviesen marcadas?

Mil gracias.

Da exactamente igual. Mira

En este caso, le digo, en el evento Al recibir el enfoque

Private Sub FechaHora_GotFocus()
If IsNull([FechaHora]) And a + b + c + d = -4 Then
FechaHora = Now()
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas