Access - generacion de calendario a partir de formularios

 
Vista:

generacion de calendario a partir de formularios

Publicado por Carlos (3 intervenciones) el 24/11/2003 10:26:11
Hola a a todos.
He creado una base de datos para el control de asistencia de los empleados, cada empleado dispone de una ficha en la cual aparece el total de horas trabajadas, las fechas y horas de ausencia y las fechas y horas de vacaciones. Me gustaria a partir de esto generar un calendario para cada empleado, en el cual se refleje de distinto color los dias que a tenido de vacaciones o de ausencias.
El control calendar de access 2000 no me sirve. Si alguien sabe como hacerlo o la forma de accerlo estaria muy agradecido.
Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

generacion de calendario a partir de formularios

Publicado por Alejandro (4142 intervenciones) el 03/05/2023 22:32:31
Para generar un calendario a partir de los datos de asistencia de los empleados en Access, podrías seguir los siguientes pasos:

1. Crea una tabla que contenga los datos de asistencia de los empleados, incluyendo la fecha y hora de cada entrada y salida, así como el tipo de registro (entrada, salida, ausencia, vacaciones, etc.).
2. Crea una consulta que agrupe los datos por día y empleado, y que calcule el número de horas trabajadas, ausentes o de vacaciones para cada día. Puedes utilizar funciones de agregación como SUM o COUNT para hacer esto.
3. Crea un formulario en el que puedas seleccionar un empleado y una fecha, y que muestre el calendario del mes correspondiente. Puedes utilizar un control Calendar para mostrar el calendario, y un subformulario para mostrar los datos de asistencia del empleado en el mes seleccionado.
4. Utiliza código VBA para modificar el color de los días correspondientes a vacaciones o ausencias en el control Calendar. Puedes utilizar la propiedad BackColor del control Calendar para hacer esto.

Aquí te dejo un ejemplo de código VBA para modificar el color de los días en el control Calendar:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Private Sub Form_Current()
    Dim startDate As Date
    Dim endDate As Date
    Dim rs As DAO.Recordset
 
    'Obtener la fecha de inicio y fin del mes actual
    startDate = DateSerial(Year(Date), Month(Date), 1)
    endDate = DateSerial(Year(Date), Month(Date) + 1, 1) - 1
 
    'Crear una consulta que devuelva las fechas y tipos de asistencia para el empleado seleccionado
    Set rs = CurrentDb.OpenRecordset("SELECT Fecha, Tipo FROM Asistencia WHERE EmpleadoID = " & Me.EmpleadoID & " AND Fecha >= #" & startDate & "# AND Fecha <= #" & endDate & "#")
 
    'Recorrer los registros y modificar el color de los días correspondientes en el control Calendar
    Do While Not rs.EOF
        If rs("Tipo") = "Vacaciones" Then
            CalendarCtl.DayBold(rs("Fecha")) = True
            CalendarCtl.DayTextColor(rs("Fecha")) = vbRed
        ElseIf rs("Tipo") = "Ausencia" Then
            CalendarCtl.DayBold(rs("Fecha")) = True
            CalendarCtl.DayTextColor(rs("Fecha")) = vbBlue
        End If
        rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing
End Sub

Este código recupera los datos de asistencia para el empleado seleccionado en el mes actual, y utiliza las propiedades DayBold y DayTextColor del control Calendar para modificar el formato de los días correspondientes a vacaciones o ausencias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar