Imprimir página | Cerrar ventana

PLANNING DE VACACIONES

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=86937
Fecha de impresión: 26/Marzo/2026 a las 19:25


Tema: PLANNING DE VACACIONES
Publicado por: Fernando
Asunto: PLANNING DE VACACIONES
Fecha de publicación: 28/Mayo/2024 a las 11:39
Buenos días.

Tengo una tabla, con las fechas del año y el personal de la empresa que está de vacaciones (uno por registro, con lo que hay días que coincide más de una persona).

Sobre esta tabla, he montado un formulario (con 42 subformularios) para ver qué personas son las que están de vacaciones día a día (además, me debe mostrar la semana en la que inicia el mes, que esto sí me sale en condiciones):

(Estoy intentando pegar una imagen del formulario, pero no veo la opción para ello). Para que os hagáis una idea, es una cuadrícula de 7 días de ancho (los días de la semana, de lunes a domingo) por 6 de alto (las semanas que puede ser que "ocupe" un mes). En la variable idDia se almacena el día del mes (en formato dd/mm/aa) y aparece en la cabecera de los subformularios subDiaxx.

El problema que tengo es que, en cada día, me presenta todo el personal de la tabla (aunque he detectado que me va "corriendo" los nombres según el día).

En el subformulario de los días, intento filtrar el personal por el cuadro de texto en el que está la fecha, pero me da error.

El código que tengo en el formulario principal, en el evento "al cargar", para que se vayan abriendo los 42 subformularios es el siguiente:

-----------------------------------------------
    Dim i As Long
    Dim x As Long
    Dim Formulario As Form
    Dim SubFormulario As SubForm
    Dim InicioCalendario As Integer
    Dim PrimerDíaMes As Date
    PrimerDíaMes = Format(CDate("01/" & mes & "/" & Año), "dd/mm/yyyy")
    For x = 1 To 42
        Set SubFormulario = Me.Controls("subDia" & Format(x, "00")) 'este es el nombre de los 42 subformularios
'        Dim Filtro As String
'        Filtro = "SELECT * From CalendariGuardies where idDia = #" & Format(Me.idDia, "dd/mm/yy") & "#"
'        SubFormulario.Form.RecordSource = Filtro
        SubFormulario.Form.Recordset.MoveFirst
    Next x
    Set SubFormulario = Nothing
    InicioCalendario = DatePart("y", PrimerDiaMes, vbMonday) - DatePart("w", PrimerDiaMes, vbMonday) + 1
    Set Formulario= Me
    x = 1
    For i = InicioCalendario To InicioCalendario + 41
        Set SubFormulario= Frm.Controls("subDia" & Format(x, "00")) 
        SubFormulario.Form.Recordset.Move 0
        SubFormulario.Form.Recordset.Move i - 1
        x = x + 1
    Next i
    Set SubFormulario= Nothing
    Set Formulario= Nothing
    x = 0
-----------------------------------------------

Si quito las instrucciones que están como comentario (en verde) me da error. 

He probado varias combinaciones, pero me salen todas las fechas como 01/01/24 y, entonces, sí que me sale sólo la persona que está de vacaciones ese día.

Me podéis ayudar?

Gracias!!!



Respuestas:
Publicado por: mounir
Fecha de publicación: 29/Mayo/2024 a las 11:59
Hola!

Te dejo un ejemplo de https://1drv.ms/f/s!AuMSWvAoJzBw-1jo91JBP1CBFMuV?e=vvQuvt" rel="nofollow - Planificar Vacaciones (Holiday Planner) en inglés. a ver si lo puedes adaptar a tus necesidades.


-------------
Un Saludo.


Publicado por: Fernando
Fecha de publicación: 29/Mayo/2024 a las 12:01
Echo un vistazo y te digo.

Muchas gracias!!!


Publicado por: Fernando
Fecha de publicación: 29/Mayo/2024 a las 12:36
Gracias de nuevo, Mounir.

NO es exactamente lo que busco, pero puedo acoplarlo a lo que necesito.

Mi idea era que, en un formulario con el mes completo, y con varios subformularios (uno por día) pudiera ver qué personal es el que está de vacaciones día a día en esos subformularios. Es que no puedo adjuntar una captura de lo que ya tengo...

Sólo me sale un cuadrito (que adjunto, por si acaso tú lo pudieras ver) 

Pero, como te digo, esto me podrías servir. 

Saludos.


Publicado por: mounir
Fecha de publicación: 29/Mayo/2024 a las 17:47
Hola!

Hace tiempo hice algo parecido con una aplicación que tenía.
Vuelve a abrir el enlace de arriba >>>>>>> Se llama "Vacaciones".

Al pulsar una fecha te abre formulario continuo, seleccionas empleado motivo de permiso y lo visualizas todos en un informe.

Espero te sirva.

-------------
Un Saludo.


Publicado por: Fernando
Fecha de publicación: 13/Junio/2024 a las 13:20
Muchas gracias de nuevo!!!

Entre todo lo que me mandaste, he logrado sacar algo que me ha servido.

Se puede cerrar el hilo.

Saludos!!!



Imprimir página | Cerrar ventana