|
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!!!
|