Control de horas an access

Hace unos días, y a cuento de lo que estoy haciendo, leí en esta misma web una respuesta tuya acerca de como sería el diseño correcto de un control de presencia.
Más o menos creo que se acercaba a mi idea, y ya llevaba algún tiempo leyendo por distintos foros y tenía (tengo) algo a medio acabar.
Por una parte, con respecto a la entrada de datos:
Verás, usando lo publicado en otro lado hace ya un buen tiempo trato de hacer mi pequeño control de presencia y mi idea también fue que la tabla de MARCAJES tuviese los campos ID, EMPLEADO, FECHA y HORA, con lo cual, también debería crear un campo en dicha tabla que fuese TIPO y en el que se indicase para futuras consultas o informes, si es "Entrada" o "Salida".
He probado en el formulario con la función DLast tratando de hacer lo siguiente:
- Si el último registro del empleado cuya identificación acabo de introducir en el formulario contiene en el campo TIPO la cadena "Entrada" entonces en el formulario actual se me rellena el control TIPO con "Salida", y si no, pues me rellena "Entrada".
Y tengo escrito esto, en el evento Después de actualizar del control que identifica al empleado, pero no me sale:
Private Sub cbarrasempleado_AfterUpdate()
If DLast("tipo", "marcajes", "cbarrasempleado=" & Me.cbarrasempleado) = "Entrada" Then
Me.tipo = "Salida"
Else
Me.tipo = "Entrada"
End If
End Sub
Igual me estoy equivocando de gordo, pero mis conocimientos de ACCESS y código son muy muy básicos...
Y por otra parte, con respecto a la posterior confección de informes mensuales:
Primero voy a resolver la entrada de datos, después me pondré a lo otro.

1 respuesta

Respuesta
1
Aunque no tengo tu base para probar, entiendo que el código que debes de poner le falta los corchetes en el filtro.
If DLast("tipo", "marcajes", "[cbarrasempleado]=" & Me.cbarrasempleado) = "Entrada" Then
y en caso de que cbarrasempleado fuera alfanumérico el código sería:
If DLast("tipo", "marcajes", "[cbarrasempleado]='" & Me.cbarrasempleado & "'") = "Entrada" Then
Evidentemente no lo he podido probar, a ver si tenemos suerte y funciona.
Ya me contarás.
Una aperta.
Manuel, mil gracias por responder y por haberte tomado el tiempo de atenderme.
Finalmente logré, variando la sintaxis puñetera como un millón de veces, dar con la tecla:
If DLast("[tipo]", "marcajes", "[cbarrasempleado]='" & Me.cbarrasempleado & "'") = "Entrada" Then
Me.tipo = "Salida"
Else
Me.tipo = "Entrada"
End If
Como te dije, leí una respuesta tuya acerca de un tema similar, y ahora estoy viendo como encontrar las diferencias de horas por días y por empleado, estando las entradas y las salidas en distintos registros. Me surgirán dudas seguro, así que ten por seguro que me permitiré volver a abusar de tu confianza ;)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas