MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    Intervalo de Datas - Inicial e Final

    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Luiz Carlos Junior 11/5/2015, 12:38

    Bom dia Mestre.
    Está chegando perto, porém, repare em como ficou e como deveria ficar (alterei a imagem no PhotoShop para mostrar como deveriam ficar os intervalos de faltas).
    O intervalo só pode ser interrompido em caso de haver um dia de trabalho no meio, que é representado pela letra "C".
    É difícil entender a explicação, mas as imagens facilitam o entendimento.
    Repare as datas na figura da página 1 e como ficou na página 2. Porém, deveria ficar igual a 3ª imagem.
    Veja se ficou mais fácil o entendimento.
    Agradeço desde já todo o trabalho que tem tido comigo.

    Abrasss!

    Intervalo de Datas - Inicial e Final - Página 2 A5gdna

    Intervalo de Datas - Inicial e Final - Página 2 1414i8k

    Intervalo de Datas - Inicial e Final - Página 2 2jfn7kz
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7930
    Registrado : 05/11/2009

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Alexandre Neves 12/5/2015, 12:09

    Bom dia, Luiz
    Porque o dia 13-10 é considerado licença?
    Porque o dia 18-10 não é considerado licença?
    Abraço,


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Luiz Carlos Junior 12/5/2015, 15:15

    Bom dia Mestre.
    É pq aqui na escola não se trabalha de finais de semana e a licença acaba no dia começa em 07-10 e termina em 17-10.
    Os únicos dias que cortariam os períodos seriam os letivos, que são os que aparecem como "C". O resto, se tiver dentro do intervalo, deve ser considerado para o preenchimento da página 2. A página 1 tá perfeita, do jeito que tem que ser.
    O preenchimento da 2 deve ficar como coloquei na imagem, baseado nos períodos de faltas (Licenças).
    Repare nas faltas na tb_FaltasCEM e perceba que existem vários períodos com pausa em dias letivos.
    Espero que tenha sido claro. É um relatório complicado, por isso, pedi ajuda aos Mestres.

    Grato desde já.

    Abrasss!!!
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7930
    Registrado : 05/11/2009

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Alexandre Neves 12/5/2015, 15:17

    Estou sem tempo, aguarde pelo fim-de-semana
    Abraço


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Luiz Carlos Junior 12/5/2015, 15:41

    Sem problemas Mestre.
    Grato.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7930
    Registrado : 05/11/2009

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Alexandre Neves 15/5/2015, 22:58

    Bom dia, Luiz
    - O dia 13-10 não é feriado na tabela feriadosCEM. Onde se encontra como feriado? Conta-se feriados da tabela feriados?
    - os feriados e os dias de fim-de-semana juntam-se ao intervalo quando "encostam" a dias de falta?


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Luiz Carlos Junior 18/5/2015, 12:00

    Bom dia Mestre.
    Não disse que dia 13-10 é feriado, se olhar na página 1 verá que está com a sigla "AT" que é de Licença por Acidente de Trabalho.
    E sim, quando encostados aos dias de licença, os finais de semana e feriados entram no intervalo de licença, como está na página 2 que montei a imagem.
    Lembrando que a página 1 está perfeita, a 2 que possui os intervalos é que está quase lá.
    Sei que é confuso, mas espero ter sido mais claro agora.
    Grato desde já.

    Abrasss!!!
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7930
    Registrado : 05/11/2009

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Alexandre Neves 18/5/2015, 12:08

    Bom dia, Luiz
    Não tinha entendido o dia 13-10, por isso, não se estava a considerar.
    Em que tabela se encontra essa falta de 13-10?
    Abraço,
    Alexandre


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Luiz Carlos Junior 18/5/2015, 12:49

    Todas as faltas estão na tabela tb_FaltasCEM.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7930
    Registrado : 05/11/2009

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Alexandre Neves 18/5/2015, 13:00

    Ao olhar na tabela, olhava para o campo Data_Falta mas tenho que ver Dia_Falta e Mes_Falta.
    Vou rever o código mas não lhe prometo antes do fim-de-semana
    Abraço,


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Luiz Carlos Junior 18/5/2015, 13:11

    Opa Mestre, só de rever já estou feliz, sem pressa. hehehe
    Abrasss!!!
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7930
    Registrado : 05/11/2009

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Alexandre Neves 18/5/2015, 15:56

    Novamente, Luiz

    Com a confusão do campo Data_Falta não corresponder à data da falta, terá de validar outras situações similares.

    Crie uma função
    Código:
    Function ConvMesExtensoParaNr(strMesExtenso As String)
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        '   código criado por Alexandre Neves, do Fórum MaximoAccess                                                '
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        Select Case strMesExtenso
        Case "Janeiro"
            ConvMesExtensoParaNr = 1
        Case "Fevereiro"
            ConvMesExtensoParaNr = 2
        Case "Março"
            ConvMesExtensoParaNr = 3
        Case "Abril"
            ConvMesExtensoParaNr = 4
        Case "Maio"
            ConvMesExtensoParaNr = 5
        Case "Junho"
            ConvMesExtensoParaNr = 6
        Case "Julho"
            ConvMesExtensoParaNr = 7
        Case "Agosto"
            ConvMesExtensoParaNr = 8
        Case "Setembro"
            ConvMesExtensoParaNr = 9
        Case "Outubro"
            ConvMesExtensoParaNr = 10
        Case "Novembro"
            ConvMesExtensoParaNr = 11
        Case "Dezembro"
            ConvMesExtensoParaNr = 12
        End Select
    End Function

    Utilize este código (substitua o anterior correspondente)
    Código:
    '======================================================================================
    'Licenças
    '======================================================================================

    Dim Rst As DAO.Recordset, Rfer As DAO.Recordset, PrimeiroDia As Date, UltimoDia As Date, NrTxt As Byte, MotivoFalta, MeioMotivoFalta As String, DataFeriado, intDiaFer, intAnoFalta, intMesFer As Integer
    Dim DataX As Date, PrimDiaRst As Date, UltDiaRst As Date, UltimoDiaControlo As Date

    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,8)='ACIDENTE') and Nome='" _
    & rs("NOME_FUNC") & "' And [ANO] = " & strAno & " ORDER BY Motivo_Falta, Ano, ConvMesExtensoParaNr(Mes_Falta), Dia_Falta;")
    'poderá ser revisto para considerar datas em falta que não sejam dias de trabalho (Sábado, Domingo, Feriado, etc)
    NrTxt = 0

    On Error Resume Next

    If Not Rst.EOF Then

    If Left(Rst("Motivo_Falta"), 7) = "Licença" Then
       MeioMotivoFalta = Mid(MotivoFalta, 9, 5)
    Else
       MeioMotivoFalta = Mid(MotivoFalta, 13,
    End If
    Dim DiasFimDeSemanaOuFeriado As Byte

    'preencheFaltas
       Rst.MoveFirst: NrTxt = 0: DiasFimDeSemanaOuFeriado = 0
       PrimDiaRst = Rst("DataFalta")
       Rst.MoveLast
       UltDiaRst = Rst("DataFalta")
       Rst.MoveFirst
       
       For DataX = PrimDiaRst To UltDiaRst
           If Rst.AbsolutePosition = 0 Then
               PrimeiroDia = DataX
               UltimoDia = DataX
               MotivoFalta = Rst("Motivo_Falta")
           ElseIf Rst("DataFalta") = DateAdd("d", 1, UltimoDia) And Rst("Motivo_Falta") = MotivoFalta Then 'dia seguinte
               UltimoDia = DataX
           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
           ElseIf DCount("*", "tb_FeriadosCEM", "Dia_Feriado & '-' & Mes_Feriado='" & Format(DataX, "dd-mm") & "'") > 0 And DataX = DateAdd("d", 1, UltimoDia) And Rst("Motivo_Falta") = MotivoFalta Then 'feriados
               UltimoDia = DataX
           ElseIf Rst("DataFalta") = DataX Then
               NrTxt = NrTxt + 1
               If PrimeiroDia = UltimoDia Then
                   Debug.Print "(2) " & Left(MotivoFalta, 1) & ". " & MeioMotivoFalta & ". " & ": " & PrimeiroDia
                   Me("txtLic" & NrTxt) = Left(MotivoFalta, 1) & ". " & MeioMotivoFalta & ". " & ": " & PrimeiroDia
               Else
                   Debug.Print "(3) " & Left(MotivoFalta, 1) & ". " & MeioMotivoFalta & ". " & ": de " & PrimeiroDia & " a " & UltimoDia
                   Me("txtLic" & NrTxt) = Left(MotivoFalta, 1) & ". " & MeioMotivoFalta & ". " & ": de " & PrimeiroDia & " a " & UltimoDia
               End If
               PrimeiroDia = Rst("DataFalta")
               UltimoDia = PrimeiroDia
               MotivoFalta = Rst("Motivo_Falta")
           End If
           If Rst("DataFalta") = DataX Then Rst.MoveNext
       Next
       NrTxt = NrTxt + 1
       If PrimeiroDia = UltimoDia Then
           Debug.Print "(4) " & Left(MotivoFalta, 1) & ". " & MeioMotivoFalta & ". " & ": " & PrimeiroDia
           Me("txtLic" & NrTxt) = Left(MotivoFalta, 1) & ". " & MeioMotivoFalta & ". " & ": " & PrimeiroDia
       Else
           Debug.Print "(5) " & Left(MotivoFalta, 1) & ". " & MeioMotivoFalta & ". " & ": de " & PrimeiroDia & " a " & UltimoDia
           Me("txtLic" & NrTxt) = Left(MotivoFalta, 1) & ". " & MeioMotivoFalta & ". " & ": de " & PrimeiroDia & " a " & UltimoDia
       End If
    End If

    Set Rst = Nothing


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Luiz Carlos Junior 18/5/2015, 17:33

    Vou testar aqui Mestre e já digo se deu certo.
    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Luiz Carlos Junior 18/5/2015, 17:56

    Mestre, nem sei como te agradecer.
    Funcionou perfeitamente.
    cheers cheers cheers cheers cheers cheers
    Depois de tanto tempo conseguimos nos entender.
    Muito grato mesmo!
    Sem palavras. Meu mês de agosto está salvo! hehehehe
    Ah, o que são aqueles números entra parenteses depois dos "Debug.Print" para que eu possa aprender?

    Abraços.

    PS: Logo mais apareço com mais dúvidas, rs.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7930
    Registrado : 05/11/2009

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Alexandre Neves 21/5/2015, 11:12

    Bom dia, Luiz
    O fórum é para isso: ajudarmo-nos uns aos outros
    A dúvida foi mais alongada porque estava a incidir sobre o campo Data_falta enquanto que as datas das faltas estão nos campos Dia_Falta, Mes_Falta e Ano
    Só o dia 13-10 me levou a descobrir o equívoco.
    Está a ver a importância da designação dos campos que facilite a compreender o conteúdo dos campos? Porque não designar o campo Data_falta como DataLancamento?
    Abraços,
    Alexandre


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Luiz Carlos Junior 21/5/2015, 12:53

    Obrigado pelas dicas Mestre.
    Sempre que leio alguma dúvida que sei como resolver, gosto de ajudar tb.
    Por isso gosto deste fórum.

    Grato a vc e a todos os outros Mestres.

    Abrasss!!!
    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Luiz Carlos Junior 29/9/2015, 14:36

    Bom dia Mestre.
    Acredite ou não, não está funcionando o preenchimento das licenças.
    Quando fui fazer as fichas, que começou nesta semana e tenho até o inicio de outubro pra entregar, não ficou certo.
    Estou enviando o exemplo para teste.

    Grato desde já.
    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Luiz Carlos Junior 29/9/2015, 14:36

    Não estou conseguindo enviar
    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Luiz Carlos Junior 30/9/2015, 14:03

    Pq não estou conseguindo enviar se o arquivo tem menos de meio Mega?
    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Luiz Carlos Junior 2/10/2015, 14:07

    Alguém pode me ajudar???
    Desesperado!
    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Luiz Carlos Junior 6/10/2015, 11:24

    Bom dia. Continuo sem conseguir enviar o arquivo, poiz, fala que tenho 0kb disponíveis.
    Alguém me explica o pq, por favor.
    E se der, já me ajude com a dúvida.
    O meu prazo é quinta agora e estou tenso.

    Grato desde já.
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7177
    Registrado : 15/03/2013

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  ahteixeira 6/10/2015, 12:09

    Olá Luiz Carlos Junior,
    Acho que a situação do alerta do Administrador ainda se mantêm, veja link abaixo:
    https://www.maximoaccess.com/t22138-anexar-ao-forum?highlight=forum+anexos

    Seguindo a recomendação, coloque na nuvem e partilhe o link.
    Eu aconselho um destes, todos de borla:

    Copy 15Gb (*)
    Meocloud 16gb (*)

    Os mais conhecidos:
    Dropbox 2Gb (*)
    OneDrive 15Gb (**)
    Google Drive 15Gb

    Nota:
    Nos assinalados (*), coloquei link de refral para ganharmos (eu e você) espaço extra.
    Nos assinalados (**), coloquei link de refral apenas eu ganho espaço extra.


    Outra alternativa será o GE.TT, não é obrigatório abertura de conta, apenas tem de arrastar o ficheiro e postar o link, bastante simples e rápido para partilha simples.

    Por último, sou da opinião de evitar a colocação de ficheiros, onde para fazer o download é obrigatório o registo.
    Abraço e bons estudos  Wink


    Última edição por ahteixeira em 11/11/2015, 16:57, editado 2 vez(es)
    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Luiz Carlos Junior 6/10/2015, 15:26

    Valeu.
    Segue o link para visualizar o BD:


    Grato pela resposta e fico no aguardo da luza para resolver o problema...


    Última edição por Luiz Carlos Junior em 26/10/2015, 12:48, editado 1 vez(es)
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7177
    Registrado : 15/03/2013

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  ahteixeira 6/10/2015, 16:55

    Olá Luiz Carlos,

    O link não funciona, verifique se partilhou, veja:
    Intervalo de Datas - Inicial e Final - Página 2 2hocrvc

    Segue link do meu teste (Open_V3.zip).
    Abraço
    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Luiz Carlos Junior 6/10/2015, 18:54

    Tinha feito errado.

    Segue:

    https://onedrive.live.com/redir?resid=229CF7CE6223FD64!246&authkey=!AOF0fUFU2QGNkRw&ithint=file%2czip

    Grato pela explicação.
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7177
    Registrado : 15/03/2013

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  ahteixeira 7/10/2015, 09:47

    Olá Luiz, será melhor explicar:

    1) ao fazer o quê (onde)??
    2) o que está acontecer ??
    3) qual o resultado que deveria dar ??

    Assim talvez seja possível outros colegas aqui do fórum ajudar.
    Abraço

    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Luiz Carlos Junior 7/10/2015, 11:47

    Bom dia.
    Tem tudo explicado com textos e figuras no corpo do post.
    Caso haja alguma outra duvida, eu explico.
    O mestre Alexandre resolveu 95% do que precisava, mas, preenchendo as fichas neste mês, ocorreram alguns erros.
    Mandei dois exemplos de faltas em que ocorrem erros neste novo exemplo.

    Grato desde já.

    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Luiz Carlos Junior 7/10/2015, 14:32

    Bom dia.
    Estou colocando aqui as telas printadas de como fica se eu fizer agora e uma modificada de como deveria ficar realmente (mexi no paint pra mostrar o correto).
    Na página 2 do relatório existem campos para serem preenchidos com as Licenças em geral (LICENÇAS) e é aí onde está o erro.
    O BD não está mostrando os intervalos corretamente: Na página 1 onde tem as siglas de licença (qualquer que comece com "L" ou "AT"), deveriam aparecer na pág 2 nos locais de licenças, mas com os intervalos corretos de datas, o que não está ocorrendo, como mostram as figuras abaixo:


    Intervalo de Datas - Inicial e Final - Página 2 2s1opl3

    Intervalo de Datas - Inicial e Final - Página 2 25zl8qg

    Abaixo, a página 2 corrigida pelo paint para visualizar como deveria ficar realmente:

    Intervalo de Datas - Inicial e Final - Página 2 2ed8uc0

    Espero que tenha ficado melhor para entender.

    Grato.
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7177
    Registrado : 15/03/2013

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  ahteixeira 7/10/2015, 14:55

    Já agora um print do form com dados preenchidos, pois não estou a conseguir tirar os reports.
    Um form da erro, testou o exemplo postado, tem a mesma informação?
    Abraço
    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Luiz Carlos Junior 7/10/2015, 15:16

    Aqui funfou perfeitamente.
    Estou enviando a pasta para que de certo.

    https://onedrive.live.com/redir?resid=229CF7CE6223FD64!3062&authkey=!AOCKxVFi_P_Q6Q4&ithint=folder%2c

    Siga os passo abaixo:

    Ao abrir o BD, abra o form Funcionários, na caixa REG, digite 1 e de Enter. Irá aparecer os dados de um funcionários que criei para dar o exemplo do que quero.
    Depois, clique em "Relatórios Individuais", "Ficha Cem". Abrirá um outro formulário (FICHA CEM). Clique em Ok.
    O relatório será criado na Pasta Relatórios que está dentro da pasta principal.


    Acho que agora vai.

    Grato.

    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7177
    Registrado : 15/03/2013

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  ahteixeira 7/10/2015, 15:46

    Ola, antes deste seu último poste, consegui por a rolar.
    Não seria mais pratico listar as datas do registo de licença.
    Era mais simples e muito mais rápido.
    Ideia, apenas.
    O código esta complexo e requer analise chegar com tempo, coisa que não disponho de momento.
    Abraço
    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Luiz Carlos Junior 7/10/2015, 18:01

    Como assim listar?
    Esse relatório é padrão aqui da Prefeitura e não posso alterar.
    No local existem apenas 12 txtbox e por isso tem que ser por períodos, do jeito que montei no paint.
    Mas se puder analisar, agradeço muito.

    Fico no aguardo.

    Grato desde já.
    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Luiz Carlos Junior 8/10/2015, 15:02

    Acho que facilita se eu mostrar qual a parte do código que faz o que preciso e que falta algum pqno detalhe pra ficar OK:

    Código:
    '======================================================================================
    'Licenças
    '======================================================================================

    Dim Rst As DAO.Recordset, Rfer As DAO.Recordset, PrimeiroDia As Date, UltimoDia As Date, NrTxt As Byte, MotivoFalta, MeioMotivoFalta As String, DataFeriado, intDiaFer, intAnoFalta, intMesFer As Integer
    Dim DataX As Date, PrimDiaRst As Date, UltDiaRst As Date, UltimoDiaControlo As Date
    Dim DiasFimDeSemanaOuFeriado As Byte

    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,8)='ACIDENTE') and Nome='" _
    & rs("NOME_FUNC") & "' And [ANO] = " & strAno & " ORDER BY Motivo_Falta, Ano, ConvMesExtensoParaNr(Mes_Falta), Dia_Falta;")
    'poderá ser revisto para considerar datas em falta que não sejam dias de trabalho (Sábado, Domingo, Feriado, etc)
    NrTxt = 0

    On Error Resume Next

    If Not Rst.EOF Then

    'preencheFaltas
      Rst.MoveFirst: NrTxt = 0: DiasFimDeSemanaOuFeriado = 0
      PrimDiaRst = Rst("DataFalta")
      Rst.MoveLast
      UltDiaRst = Rst("DataFalta")
      Rst.MoveFirst
     
      For DataX = PrimDiaRst To UltDiaRst
          If Rst.AbsolutePosition = 0 Then
              PrimeiroDia = DataX
              UltimoDia = DataX
              MotivoFalta = Rst("Motivo_Falta")
          ElseIf Rst("DataFalta") = DateAdd("d", 1, UltimoDia) And Rst("Motivo_Falta") = MotivoFalta Then 'dia seguinte
              UltimoDia = DataX
          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
          ElseIf DCount("*", "tb_FeriadosCEM", "Dia_Feriado & '-' & Mes_Feriado='" & Format(DataX, "dd-mm") & "'") > 0 And DataX = DateAdd("d", 1, UltimoDia) And Rst("Motivo_Falta") = MotivoFalta Then 'feriados
              UltimoDia = DataX
          ElseIf Rst("DataFalta") = DataX Then
              NrTxt = NrTxt + 1
              If PrimeiroDia = UltimoDia Then
                    Debug.Print "(2) " & PrimeiroDia
                    Me("txtLic" & NrTxt) = PrimeiroDia
                    Debug.Print "(2) " & MotivoFalta
                    Me("txtMotLic" & NrTxt) = MotivoFalta
              Else
                    Debug.Print "(3) " & PrimeiroDia & " a " & UltimoDia
                    Me("txtLic" & NrTxt) = PrimeiroDia & " a " & UltimoDia
                    Debug.Print "(3) " & MotivoFalta
                    Me("txtMotLic" & NrTxt) = MotivoFalta
              End If
              PrimeiroDia = Rst("DataFalta")
              UltimoDia = PrimeiroDia
              MotivoFalta = Rst("Motivo_Falta")
          End If
          If Rst("DataFalta") = DataX Then Rst.MoveNext
      Next
      NrTxt = NrTxt + 1
      If PrimeiroDia = UltimoDia Then
            Debug.Print "(4) " & PrimeiroDia
            Me("txtLic" & NrTxt) = PrimeiroDia
            Debug.Print "(4) " & MotivoFalta
            Me("txtMotLic" & NrTxt) = MotivoFalta
      Else
            Debug.Print "(5) " & PrimeiroDia & " a " & UltimoDia
            Me("txtLic" & NrTxt) = PrimeiroDia & " a " & UltimoDia
            Debug.Print "(5) " & MotivoFalta
            Me("txtMotLic" & NrTxt) = MotivoFalta
      End If
    End If

    Set Rst = Nothing

    No aguardo da luz de vcs Mestres.

    Grato desde já
    Noobezinho
    Noobezinho
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3932
    Registrado : 29/06/2012

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Noobezinho 8/10/2015, 15:30

    Olá  Luis

    Acabei de baixar teu aplicativo, ainda estou
    estudando-o para entender seu funcionamento.

    Bem, de cara, encontrei no relatório, um erro aqui:

    Editando: Estou verificando ainda, o erro é outro

    Quanto ao parenteses onde tem Debug.Print , note que estão entre aspas, então será apenas impresso,isso serve para saber
    de qual linha são exibidos os resultado na janela de verificação imediata.
    Vou continuar analisando aqui.

    [ ]'s


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...
    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Luiz Carlos Junior 8/10/2015, 17:12

    Vale Mestre.
    Espero que consiga.
    Estou a um ano tentando acertar e nada.
    Grato desde já...

    Abrasss!!!
    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Luiz Carlos Junior 14/10/2015, 18:42

    Bom dia Mestres.
    Alguém conseguiu algo?
    Grato desde já.
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7177
    Registrado : 15/03/2013

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  ahteixeira 15/10/2015, 16:31

    Olá Luiz Carlos, o tempo é o nosso maior inimigo Smile
    Abraço
    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Luiz Carlos Junior 16/10/2015, 00:57

    Sem problemas Mestre. No aguardo!
    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Luiz Carlos Junior 17/10/2015, 17:45

    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,Cool='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,Cool='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.
    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Luiz Carlos Junior 20/10/2015, 16:13

    Bom dia Mestres.
    Facilitou para arrumar o que postei por último?
    Fiz vários testes aqui e é aquela linha mesmo.

    No aguardo.
    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    Intervalo de Datas - Inicial e Final - Página 2 Empty Re: Intervalo de Datas - Inicial e Final

    Mensagem  Luiz Carlos Junior 26/10/2015, 12:49

    Bom dia Metres.
    Alguma luz?

    Abrasss!!!

      Data/hora atual: 12/4/2021, 00:42