Access HORAS TRABAJADAS

Estoy haciendo una base de datos para calcular las horas trabajadas de los trabajadores de mi empresa en función de un número de pedido y necesito ayuda.
La BD consta de:
- Tabla trabajadores (con un "Id" relacionado con cada trabajador)
- Tabla horas + formulario (por donde manualmente escojo trabajador y determino la fecha / número de pedido / horas normales / horas extras de cada día del mes)
No sé cómo puedo:
- Calcular el número total de horas trabajadas a final de mes, diferenciando entre NORMALES y EXTRAS
- Calcular las horas trabajadas de cada trabajador durante el mes en función de cada pedido.

1 Respuesta

Respuesta
1
Tabla Horas:
IdTrabajador Fecha Pedido Normales Extras
Para calcular el nº total de horas trabajadas por Trabajador/Año/Mes:
Creamos un formulario independiente (no está basado en ninguna tabla ni consulta) en modo diseño:
En las propiedades del formulario:
Vista Predeterminada: Formularios Continuos
Origen del registro: SELECT IdTrabajador, Year(fecha) AS Año, Month(fecha) AS Mes, sum(Normales) AS HorasNormales, sum(extras) AS HorasExtras, sum(normales+extras) AS HorasTotales FROM Horas GROUP BY IdTrabajador, year(fecha), month(fecha) ORDER BY IdTrabajador, year(fecha), month(fecha);
Es decir, seleccióname el IdTrabajador, el año y mes del campo fecha (los llamamos Año y Mes, la suma de la horas diferenciadas y totales (los llamamos HorasNormales, HorasExtras y HorasTotales) de la tabla Horas agrúpame por trabajador, año y mes y ordénamelo de la misma forma.
Vemos que al introducir la sql en el origen del registro nos sale la Lista de los Campos que hemos seleccionado.
Botón derecho sobre el formulario -à Elegimos Encabezado/Pié de página
En el encabezado pondríamos las etiquetas de los nombres y en el detalle los campos.
Para el pedido sería igual, añadiendo en la sql el campo Pedido:
SELECT Pedido, IdTrabajador, Year(fecha) AS Año, Month(fecha) AS Mes, sum(Normales) AS HorasNormales, sum(extras) AS HorasExtras, sum(normales+extras) AS HorasTotales FROM Horas GROUP BY Pedido, IdTrabajador, year(fecha), month(fecha) ORDER BY Pedido, IdTrabajador, year(fecha), month(fecha);

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas