Olá Mestres, bom dia.
Ontem, depois de muitas tentativas, acho que encontrei onde está o problema:
Nesta parte,
Set Rst = CurrentDb.OpenRecordset("SELECT DateSerial(Ano, ConvMesExtensoParaNr(Mes_Falta),Dia_Falta) as DataFalta, Motivo_Falta FROM tb_FaltasCEM WHERE (Left(Motivo_Falta,7)='Licença' OR Left(Motivo_Falta,
='ACIDENTE') and Nome='" _
& rs("NOME_FUNC") & "' And [ANO] = " & strAno & " ORDER BY Motivo_Falta, Ano, ConvMesExtensoParaNr(Mes_Falta), Dia_Falta;")
retirei uma parte do filtro para que p intervalo de tempo necessário ficasse certo e ficou assim:
Set Rst = CurrentDb.OpenRecordset("SELECT DateSerial(Ano, ConvMesExtensoParaNr(Mes_Falta),Dia_Falta) as DataFalta, Motivo_Falta FROM tb_FaltasCEM WHERE (Left(Motivo_Falta,7)='Licença' OR Left(Motivo_Falta,
='ACIDENTE') and Nome='" _
& rs("NOME_FUNC") & " ORDER BY Motivo_Falta, Ano, ConvMesExtensoParaNr(Mes_Falta), Dia_Falta;")
Nesta outra parte da linha do código é que está o problema em si:
ElseIf Weekday(Rst("DataFalta")) = 2 And DateDiff("d", Rst("DataFalta"), UltimoDia) < 3 And Rst("Motivo_Falta") = MotivoFalta Then '2ª-feira com falta na última sexta-feira
UltimoDia = DataX
Retirei a mesma e nos casos onde as licenças não são longas (ultrapassam uma semana e seguem após o final de semana) funcionou perfeitamente, porém, nos casos em que são longas, elas param os períodos na sexta e retornam na segunda.
Se recoloco essa linha, as lingas funcionam e as outas não.
Tem que fazer alguma alteração nela que ainda não consegui.
Espero ter ajudado a me ajudarem. hehehe.
Grato.