Crear Base de datos en Access de Entrada y Salida de Empleados

Tengo una base de datos donde estoy integrando varias cosas como facturación, contabilidad, etc y ahora le agregue un control de acceso de personal OJO todo esta bien al introducir los datos lo uno malo es que me duplica los usuarios por ejemplo si la tabla esta limpia sin ningún usuario ingresado desde el formulario, lo agrega sin problemas y en la consulta se ve el código de empleado, el nombre, día, fecha, hora de entrada y de salida aparte le agregue el total de horas trabajadas por día de cada empleado pero e hecho de todo lo que conozco y aun no puedo dar con el problema de la duplicidad de usuarios es más si se registra usuario por usuario diferente no hay problema el mismo comienza cuando se agrega al siguiente día o el mismo día un usuario repetido que lo que debería hacer es agregar el usuario repetido y ya pero no, access me lo duplica 4 veces y con las horas dispersas hasta me coloca que entre por ejemplo a las 8:30am y salí a las 7:45am, si alguien me puede ayudar por favor se lo agradecería muchísimo, gracias.

Esta es la imagen con el reporte normal

Y esta es la imagen con el reporte duplicado

Si necesitan más información se las enviare con gusto.

4 respuestas

Respuesta
1

Buetas tardes amigos, excelente sus respuestas me ayudaron en un 100% pero si me pudieran ayudar un poco más con ese ejemplo que me dijeron, como haría para a esta función

Public Function fncHorasTrabajo(laHoraIni As Date, laHoraFin As Date) As Double
If laHoraIni < laHoraFin Then  'Trabajo en el mismo día
    fncHorasTrabajo = DateDiff("n", laHoraIni, laHoraFin) / 60
Else
    fncHorasTrabajo = 24 + DateDiff("n", laHoraIni, laHoraFin) / 60
End If
End Function

Restarle 1 hora que seria la hora de almuerzo y que me diera las 8 horas de trabajo diarias.

Respuesta
1

Yorman: Desde luego que es un poco raro y además parece que la duplicidad es de un tiempo constante de 00:59. Es dificil sin ver la BD, de donde viene el fallo.

En lugar de aventurar una solución que quizá se alargaría, mira si quieres la metodología que sigue Sveinbjorn en éste ejemplo.

http://siliconproject.com.ar/neckkito/index.php/aportaciones 

El ejemplo se llama: Horas por turnos

Y la Fecha es 06/09/2015. Mis saludos >> Jacinto

Yorman: Entiendo que lo que comentas, solo tiene sentido si es la primera parte de la Expresión.

Entonces simplemente réstale 1, con lo que te quedaría>>

fncHorasTrabajo = (DateDiff("n", laHoraIni, laHoraFin) / 60) -1

Mis saludos >> Jacinto

¡Gracias! Hermano de verdad has sido de gran ayuda ya que esto tengo que entregarlo el lunes en la ofic y era lo único que me faltaba, agradecido

Por nada Yorman: Encantado en contribuir, (junto al resto de respuestas) a solucionar una duda. Mis saludos >> Jacinto

Hola amigo buenas tardes disculpa tanta molestia pero sigue igual, me duplica el registro si quieres te paso la BD y la revisas para que veas en que estoy fallando y disculpa nuevamente

Yorman: si quieres que le eche una ojeada, opta por una de las dos opciones siguientes.

1.- Pones la Bd en un enlace aquí con tu BD.

2.- Enviármela a [email protected]

Mis saludos >> Jacinto

¡Gracias! Ya te la envíe por correo te explico las tablas son TEntradas, TProductos y TSalidas y los formularios FMenu, FEntradas y FSalidas la consulta es Cons_CAcceso y allí en la consulta esta el duplicado de las filas, la fila real es la que dice 8 horas trabajadas lo extraño es que si ves las tablas TEntradas y TSalidas están bien pero usted es el experto jejejeje.

Respuesta
1

El problema lo tienes con las relaciones. En tu imagen se observa que repite valores.

En la imagen que te mando hay dos tablas Una y Dos, Una sólo tiene dos valores 1 y 2, y la tabla Dos tiene tres valores 1, 2 y 3. Si haces una consulta como en la imagen

El resultado no son los 2 registros coincidentes, sino

Reconozco que soy enemigo acérrimo de las consultas, pudiendo hacerlo casi todo en código.

Respuesta
1

No me parece nada extraño en la según da imagen que adjuntas, quizá el problema sea en la manera en que estas ingresando los datos.

Yo hice algo parecido hace algunos meses, pero solo tenia que marcar hora, sin espcecificar si era ingreso o salida. Ahora bien quizá sea necesario le indiques al formulario que cada vez que ingresas te cree un registro nuevo en la tabla que llevas el control, también te sugiero que revises la relación de las tablas. La verdad es que no se me ocurre nada más de momento, se que no das más información ya que comprendo que es un trabajo bastante especial y no es tan sencillo configurar algo así. Espero te sirva lo que te expreso y logres solucionar el inconveniente.

Sld. Ronald

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas