MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    Ferias - Preencher campos com base em dois campos data

    avatar
    Ricardo84
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 73
    Registrado : 18/01/2014

    Ferias - Preencher campos com base em dois campos data Empty Ferias - Preencher campos com base em dois campos data

    Mensagem  Ricardo84 em 12/6/2020, 19:58

    Boa tarde,

    Tenho um formulário, que irá corresponder ao registo individual de uma pessoa para marcar férias. Nesse formulário tenho 2 campos com a data de inicio e fim das ferias. Num outro campo irei ter o numero de dias uteis entre as duas datas, mas isso até já tenho orientado.
    A minha dificuldade está em preencher os campos numa tabela, que iria ser a do planeamento onde o objetivo seria preencher os campos com "F".

    Por exemplo:

    Data Inicio 01/06/2020
    Data Fim 05/06/2020 (inclusive)

    Dá 5 dias uteis de ferias

    Na tabela Planeamento iria ficar  F F F F F nos campos 1 a 5

    Data inicio 01/06/2020
    Data fim 12/06/2020 (inclusive)

    Dá 9 dias uteis  (dia 10 é feriado e está na tabela dos feriados)

    Na tabela Planeamento iria ficar F F F F F X X F F F X F

    Os X seriam espaços em branco.

    A parte do fim de semana já consegui, mas a parte do feriado não tenho conseguido. Tb já tentei o método Dlookup, mas diz que não encontra o campo [DataFeriado]

    Segue aqui o exemplo em que estou a trabalhar e aceito sugestões para melhorar / alterar o que já está feito.

    https://www.dropbox.com/s/w2i6m66sfjbk6fs/Ferias.accdb?dl=0
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Ferias - Preencher campos com base em dois campos data Empty Re: Ferias - Preencher campos com base em dois campos data

    Mensagem  Alexandre Neves em 14/6/2020, 09:33

    Bom dia

    Nomeie de forma normalizada, facilita muito na construção e leitura do código
    Não utilize palavras reservadas, data, etc
    Código:
    Private Sub Comando14_Click()
        Dim RsMes As DAO.Recordset
        Dim rst As DAO.Recordset
        Dim Data As Date
        Dim DiaInicio As Integer
        Dim DiaFim As Integer
        Dim MesInicio As Integer
        Dim MesFim As Integer
       
        Data = Me.TxtDataInicio
        DiaInicio = Format(Me.TxtDataInicio, "dd")
        DiaFim = Format(Me.TxtDataFim, "dd")
        MesInicio = Format(Me.TxtDataInicio, "mm")
        MesFim = Format(Me.TxtDataFim, "mm")
       
        Set RsMes = CurrentDb.OpenRecordset("SELECT * FROM TabPlaneamento WHERE Mes=" & MesInicio & "And IdPessoal=1")
        Set rst = CurrentDb.OpenRecordset("SELECT * FROM TabFeriados WHERE Extinto=0")
       
        Do While DiaInicio <= DiaFim
            If Weekday(Data) = vbSaturday Or Weekday(Data) = vbSunday Then
                GoTo fds
            Else
                rst.FindFirst "DataFeriado=#" & Format(Data, "mm-dd-yyyy") & "#"
                If rst.NoMatch Then
                    intCount = intCount + 1
                    RsMes.Edit
                    RsMes(DiaInicio + 3) = "F"
                    RsMes.Update
                End If
    fds:
                DiaInicio = DiaInicio + 1
                Data = Data + 1
            End If
        Loop
       
        DiaInicio = Format(Me.TxtDataInicio, "dd")
        Data = Me.TxtDataInicio
    End Sub


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

      Data/hora atual: 9/8/2020, 15:07