** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Consulta unir RegistroEntrada con RegistroSalida
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoConsulta unir RegistroEntrada con RegistroSalida

 Responder Responder
Autor
Mensaje
informagic Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 03/Marzo/2020
Localización: Valencia
Estado: Sin conexión
Puntos: 3
Enlace directo a este mensaje Tema: Consulta unir RegistroEntrada con RegistroSalida
    Enviado: 03/Marzo/2020 a las 13:05
Estoy realizando una base de datos para el control horario.
En una tabla tengo los registros de entrada del los empleados con los mismos campos que en la tabla de los registros de salida, y son los siguientes:
Tabla RegEntrada:  LogID - UserCode - CheckType - Fecha - HoraEntrada
Tabla RegSalida: LogID - UserCode - CheckType - Fecha - HoraSalida
El campo CheckType es = 0 cuando es una entrada y 1 cuando es una salida
Las tablas estan relacionas por el UserCode
Lo que me gustaria conseguir es una consulta que busque el primer registro de salida despues de un registro de entrada de un empleado. Es decir si un empleado realiza la entrada un dia a las 9:00 la consulta debe buscar el primer registro de salida cuya fecha sea igual o mayor a la fecha de entrada y la hora de salida sea mayor a la hora de entrada.
El resultado final serian todos los registros unidos los registros de entrada de un empleado junto con el registro de salida que le corresponda y a partir de ahi poder calcular las horas trabajadas.
Espero haberme explicado y espero que alguien me pueda ayudar.
Gracias de antemano
Informagic
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14926
Enlace directo a este mensaje Enviado: 03/Marzo/2020 a las 13:55
Hola informagic y bienvenido al foro,

Como dices "estoy realizando" asumiré que no está en producción y me arriesgaré a proponer un cambio:

Tabla única con todos los campos y fin del problema.

Conceptualmente nadie puede salir sin haber entrado por lo que es relativamente simple localizar el registro del usuario de entrada sin salida y actualizarlo en el momento de salir.

¿o lo he simplificado demasiado?

Un saludo


Xavi, un minyó de Terrassa

Mi web
Arriba
informagic Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 03/Marzo/2020
Localización: Valencia
Estado: Sin conexión
Puntos: 3
Enlace directo a este mensaje Enviado: 03/Marzo/2020 a las 17:24
Hola Xavi,

Gracias por contestar.

Efectivamente estamos en proceso de produccion.

El problema es que yo recibo los registros desde un terminal de huella y el terminal los vuelca a una sola tabla, en esa tabla se distinguen los registros de entrada y de la salida en el campo CheckType (0=entrada / 1=salida) y ademas la fecha y la hora las guarda en un solo campo llamado Checktime con este formato (dd/mm/aaaa hh:mm:ss).
Yo tengo una consulta que separa el campo Checktime en dos campos, uno para la fecha y otro para la hora dentro de esa misma tabla donde esta los registros, de esta forma tengo la fecha y la hora en dos campos distintos

Depues tengo dos consultas, una para localizar los registros de entrada con su fecha y hora y la otra para localizar los registros de salida con su fecha y hora.

Ahora la idea seria realizar una consulta de esas dos consultas, a las que he llamado Registros_Entrada y Registros_Salida.

Quiero que  esa consulta fuese capaz de realizar lo que te indicaba en le primer mensaje, es decir, una consulta que busque el primer registro de salida despues de un registro de entrada de un empleado. Es decir si un empleado realiza la entrada un dia a las 9:00 la consulta debe buscar el primer registro de salida cuya fecha sea igual o mayor a la fecha de entrada y la hora de salida sea mayor a la hora de entrada.
El resultado final serian todos los registros unidos los registros de entrada de un empleado junto con el registro de salida que le corresponda y a partir de ahi poder calcular las horas trabajadas.

Esa es la idea

Espero haberme explicado

Gracias
Informagic
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable