MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Dias úteis após data de inicio com feriados

    Compartilhe

    Sérgio Fortunato
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7
    Registrado : 30/04/2015

    [Resolvido]Dias úteis após data de inicio com feriados

    Mensagem  Sérgio Fortunato em Qui 07 Maio 2015, 10:13

    Bom dia

    Necessito uma vez mais de ajuda na resolução deste código.
    Este ficheiro de access estava como o 2000 e reconverti para 2007, a função deu erro no código: rs_fer.FindFirst "[FerData] = #" & Format(DataFinal, "mm/dd/yy") & "#"

    Dim DataFinal As Date
    Dim Dias, Semana As Integer
    Dim db As Database
    Dim rs_fer As Recordset

    Set db = CurrentDb
    Set rs_fer = db.OpenRecordset("tblFeriados", dbOpenDynaset)

    Dias = 0
    DataFinal = DataInicial

    While Dias < QtdDiasUteis
    DataFinal = DataFinal + 1
    Semana = Weekday(DataFinal)
    If Semana <> 1 And Semana <> 7 Then ' 1=Domingo 7=Sábado


    rs_fer.FindFirst "[FerData] = #" & Format(DataFinal, "mm/dd/yy") & "#"
    If rs_fer.NoMatch Then



    Dias = Dias + 1
    End If
    End If
    Wend

    DataUtil = DataFinal
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    Re: [Resolvido]Dias úteis após data de inicio com feriados

    Mensagem  Assis em Qui 07 Maio 2015, 10:53

    Bom dia
    Teste asim
    rs_fer.FindFirst "[FerData] = #" & Format(DataFinal, "dd/mm/yyyy") & "#"


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

    Sérgio Fortunato
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7
    Registrado : 30/04/2015

    Re: [Resolvido]Dias úteis após data de inicio com feriados

    Mensagem  Sérgio Fortunato em Qui 07 Maio 2015, 12:59

    Continua a dar erro.

    "Method or data not found"
    avatar
    ÓscarSantos
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 333
    Registrado : 18/09/2013

    Re: [Resolvido]Dias úteis após data de inicio com feriados

    Mensagem  ÓscarSantos em Qui 07 Maio 2015, 13:03

    tenta esta função cortesia do nosso amigo Jpaulo

    Public Function DiasUteis(dtInicio As Date, dtFim 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 = (dtFim - dtInicio) + 1

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

    dtInicio = dtInicio + 1

    Loop Until dtInicio = dtFim + 1

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


    Abraço


    .................................................................................
    _________________________________________________________
    sempre a aprender
    para enviar ou postar só access2003 infelizmente é o que tenho no trabalho [Você precisa estar registrado e conectado para ver esta imagem.] .
    para dar tópio como resolvido [Você precisa estar registrado e conectado para ver este link.]

    Sérgio Fortunato
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7
    Registrado : 30/04/2015

    Re: [Resolvido]Dias úteis após data de inicio com feriados

    Mensagem  Sérgio Fortunato em Qui 07 Maio 2015, 13:56

    O problema é que tenho uma data de inicio e preciso que me devolva a data de fim, após 12 dia úteis (indo buscar os feriados a uma tabela).

    Public Function DataUtil(DataInicial As Date, QtdDiasUteis As Integer) As Date
    avatar
    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Dias úteis após data de inicio com feriados

    Mensagem  Avelino Sampaio em Qui 07 Maio 2015, 14:21

    Olá!

    Veja se este meu artigo te ajuda:

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

    Bom estudo!

    Sérgio Fortunato
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7
    Registrado : 30/04/2015

    Re: [Resolvido]Dias úteis após data de inicio com feriados

    Mensagem  Sérgio Fortunato em Sex 08 Maio 2015, 10:14

    Agradeço a vossa ajuda, mas já encontrei um código que me resolve o que eu queria, mantendo a tabela de feriados.


    Public Function DiasUteisComNumero(dtInicio As Date, NumDias As Integer) As Date
    '---------------------------------------------------------------------------------------
    ' Procedimento : DiasUteisComNumero
    ' Data e Hora : 22/08/07 18:47
    ' Autor : Osmar José Correia Júnior
    ' O que faz : Devolve um dia útil a partir de uma data inicial fornecido um número de dias
    '
    ' Entradas : dtInicio - Data inicial
    ' : NumDias - Número de dias úteis a serem acrescentados
    '
    ' Saída : Data
    '
    ' Utilize à vontade mas não altere este cabeçalho.
    ' Valorize quem o ajuda.
    '---------------------------------------------------------------------------------------

    On Error GoTo Erro_DiasUteisComNumero

    Dim dtTrab As Date
    Dim DB As DAO.Database
    Dim rst As DAO.Recordset

    Set DB = CurrentDb
    Set rst = DB.OpenRecordset("SELECT [FerData] FROM tblFeriados", dbOpenSnapshot)

    dtTrab = DateAdd("d", NumDias, dtInicio)

    Do While dtInicio <= dtTrab
    If Weekday(dtInicio) = vbSunday Or Weekday(dtInicio) = vbSaturday Then
    dtTrab = dtTrab + 1
    Else
    rst.FindFirst "[FerData] = #" & Format(dtInicio, "mm/dd/yyyy") & "#"
    If Not rst.NoMatch Then dtTrab = dtTrab + 1
    End If
    dtInicio = dtInicio + 1
    Loop
    DiasUteisComNumero = dtTrab
    Saida:
    Exit Function
    Erro_DiasUteisComNumero:
    MsgBox Err.Description & vbCrLf & vbCrLf & "No módulo fDUteis, tipo Módulo, procedimento DiasUteisComNumero", _
    vbExclamation + vbOKOnly, "Erro: " & CStr(Err.Number)
    Resume Saida
    End Function

    Sérgio Fortunato
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7
    Registrado : 30/04/2015

    Re: [Resolvido]Dias úteis após data de inicio com feriados

    Mensagem  Sérgio Fortunato em Sex 08 Maio 2015, 10:17

    Obrigado

      Data/hora atual: Qui 20 Jul 2017, 15:34