MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Dias Uteis

    Compartilhe

    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 2746
    Registrado : 06/11/2009

    Dias Uteis

    Mensagem  Assis em Qua 14 Set 2011, 18:12

    Boa tarde

    Tirei esta função aqui do forum e colei-a num Modulo .
    Mas não estou a conseguir chama-la no form num campo Chamado "NDiasUteis" aonde quero a informação.
    Alguem ajuda ?


    Public Function DiasUteis(DataInicio As Date, DATAFIM As Date) As Long
    'By JPaulo Ž Maximo Access
    'Total de Dias entre duas datas sem fins de semana
    Dim TotalDiasActuais As Long, TotalDiasTrab As Long
    Dim strIniciaContagem As Long


    DoCmd.Hourglass (-1)
    strIniciaContagem = -2
    TotalDiasActuais = (DATAFIM - DataInicio) + 1

    Do
    If Weekday(DataInicio) = 7 Or Weekday(DataInicio) = 1 Then
    strIniciaContagem = strIniciaContagem + 1
    End If

    DataInicio = DataInicio + 1

    Loop Until DataInicio = DATAFIM + 1

    TotalDiasTrab = TotalDiasActuais - strIniciaContagem
    DoCmd.Hourglass (0)
    DiasUteis = TotalDiasTrab
    Exit Function
    End Function


    .................................................................................
    *** Só sei que nada sei ***

    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Dias Uteis

    Mensagem  Alexandre Neves em Qua 14 Set 2011, 20:16

    Boa noite, Assis
    pretende colocar o resultado da função na caixa de texto?
    NDiasUteis=DiasUteis(dataInicio,DataFim)

    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 2746
    Registrado : 06/11/2009

    Re: [Resolvido]Dias Uteis

    Mensagem  Assis em Qua 14 Set 2011, 22:15

    obrigado Alexandre


    .................................................................................
    *** Só sei que nada sei ***

    Venloz
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 102
    Registrado : 20/02/2013

    Re: [Resolvido]Dias Uteis

    Mensagem  Venloz em Dom 15 Set 2013, 00:34

    Pessoal, Boa Noite !

    Alguém pode me dar mais detalhes de como adaptar essa função??

    Eu tenho 3 campos no meu formulário

    1 campo - DataIni (Lugar onde informo a data inicial)
    2 Campo - DataFimm (Lugar onde informo a data final)

    3 Campo - Total(Lugar onde devera aparecer o calculo de dias úteis)

    Como faço para adaptar esse código ?




    Tentei fazer da seguinte forma

    1º Criei um módulo e colei o código do site

    Public Function DiasUteis(DataInicio As Date, DATAFIM As Date) As Long
    'By JPaulo Ž Maximo Access
    'Total de Dias entre duas datas sem fins de semana
    Dim TotalDiasActuais As Long, TotalDiasTrab As Long
    Dim strIniciaContagem As Long

    DoCmd.Hourglass (-1)
    strIniciaContagem = -2
    TotalDiasActuais = (DATAFIM - DataInicio) + 1

    Do
    If Weekday(DataInicio) = 7 Or Weekday(DataInicio) = 1 Then
    strIniciaContagem = strIniciaContagem + 1
    End If

    DataInicio = DataInicio + 1

    Loop Until DataInicio = DATAFIM + 1

    TotalDiasTrab = TotalDiasActuais - strIniciaContagem
    DoCmd.Hourglass (0)
    DiasUteis = TotalDiasTrab
    Exit Function
    End Function

    Após no campo "Total" do formulário fiz da seguinte forma

    Private Sub Total_Click()
    Dim Inicio As Date
    Dim Final As Date

    Inicio = Me.dataini
    Final = Me.datafimm

    Total = DiasUteis(dataini, datafimm)


    End Sub

    Porém ao colocar a seguinte data "09/09/2013" como dataini e "11/09/2013" como datafimm, a diferença ele calcula sendo "5" dias, porém o correto é "2" dias.

    O que estou fazendo de errado ?



    Venloz
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 102
    Registrado : 20/02/2013

    Re: [Resolvido]Dias Uteis

    Mensagem  Venloz em Dom 15 Set 2013, 00:59

    Galera consegui mas tive que fazer uma alteração


    Public Function DiasUteis(DataInicio As Date, DATAFIM As Date) As Long
    'By JPaulo Ž Maximo Access
    'Total de Dias entre duas datas sem fins de semana
    Dim TotalDiasActuais As Long, TotalDiasTrab As Long
    Dim strIniciaContagem As Long


    DoCmd.Hourglass (-1)
    strIniciaContagem = 1 ( nesse ponto era -2, não estava contando corretamente, alterei para 1 e consegui fazer contar de forma correta, alguém sabe o porque disso? eu alterei apenas pra testar e consegui resolver)
    TotalDiasActuais = (DATAFIM - DataInicio) + 1

    Do
    If Weekday(DataInicio) = 7 Or Weekday(DataInicio) = 1 Then
    strIniciaContagem = strIniciaContagem + 1
    End If

    DataInicio = DataInicio + 1

    Loop Until DataInicio = DATAFIM + 1

    TotalDiasTrab = TotalDiasActuais - strIniciaContagem
    DoCmd.Hourglass (0)
    DiasUteis = TotalDiasTrab
    Exit Function
    End Function

    next
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 15
    Registrado : 13/11/2015

    Re: [Resolvido]Dias Uteis

    Mensagem  next em Qua 08 Jun 2016, 14:42

    Tenho um campo de data com o nome "txt_ABERTURA" na qual eu seleciono a data e preciso trazer no campo "txt_DATALIMITE" a soma de 15 dias úteis referente ao campo "txt_ABERTURA"! Como faço?

    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3348
    Registrado : 04/04/2010

    Re: [Resolvido]Dias Uteis

    Mensagem  Avelino Sampaio em Qua 08 Jun 2016, 14:55

    Olá!

    veja se este tópico ajuda:

    [Você precisa estar registrado e conectado para ver este link.]

    Sucesso!


    .................................................................................
    ============ Quer aprender Access em alta velocidade ? ============

    || [Você precisa estar registrado e conectado para ver esta imagem.] Acesse o site UsandoAccess.com.br e veja um ótimo kit de ensino que tenho para você.

    ===========================================================

    next
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 15
    Registrado : 13/11/2015

    Re: [Resolvido]Dias Uteis

    Mensagem  next em Qua 08 Jun 2016, 18:32

    Muito obrigado pela dica Avelino Sampaio, funcionou perfeitamente os dias úteis! So estou com dúvida para aplicar os feriados pois não entendi muito bem como fazer.

      Data/hora atual: Seg 05 Dez 2016, 04:23