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

5 participantes

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

    avatar
    Sérgio Fortunato
    Novato
    Novato


    Respeito às regras : 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 Empty [Resolvido]Dias úteis após data de inicio com feriados

    Mensagem  Sérgio Fortunato 7/5/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

    Cleniroweb gosta desta mensagem

    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Assis 7/5/2015, 10:53

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


    .................................................................................
    *** Só sei que nada sei ***
    avatar
    Sérgio Fortunato
    Novato
    Novato


    Respeito às regras : 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 Empty Re: [Resolvido]Dias úteis após data de inicio com feriados

    Mensagem  Sérgio Fortunato 7/5/2015, 12:59

    Continua a dar erro.

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


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  ÓscarSantos 7/5/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ó access2007 infelizmente é o que tenho no trabalho Sad .
    para dar tópico como resolvido https://www.maximoaccess.com/t860-resolucao-de-topicos
    avatar
    Sérgio Fortunato
    Novato
    Novato


    Respeito às regras : 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 Empty Re: [Resolvido]Dias úteis após data de inicio com feriados

    Mensagem  Sérgio Fortunato 7/5/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
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Avelino Sampaio 7/5/2015, 14:21

    Olá!

    Veja se este meu artigo te ajuda:

    http://www.usandoaccess.com.br/tutoriais/ajustar-data-vencimento-para-dia-util.asp?id=1#inicio

    Bom estudo!


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso irrestrito ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    avatar
    Sérgio Fortunato
    Novato
    Novato


    Respeito às regras : 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 Empty Re: [Resolvido]Dias úteis após data de inicio com feriados

    Mensagem  Sérgio Fortunato 8/5/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
    avatar
    Sérgio Fortunato
    Novato
    Novato


    Respeito às regras : 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 Empty Re: [Resolvido]Dias úteis após data de inicio com feriados

    Mensagem  Sérgio Fortunato 8/5/2015, 10:17

    Obrigado
    avatar
    Cleniroweb
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 71
    Registrado : 16/03/2014

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

    Mensagem  Cleniroweb 24/9/2022, 01:33

    Olá Caros colegas,
    Peguei esse código do nosso colega Sérgio e foi tudo o que estava precisando para calcular datas futuras com dias úteis
    Criei um módulo com esse código

    Criei uma campo calculado com essa função e ficou assim.
    DtPrevista:DiasUteisComNumero([DtProcesso];30).
    Tenho um arquivo com 40.000 linhas, demora um pouco para processar mas Ok, até  aí tudo bem mas, o problema é que quando vou copiar ou exportar essa consulta para o excel, isso leva 5 horas para processar, não importa o método, alguém saberia o que pode estar ocorrendo?

    Obrigado,
    Cleniro.
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Avelino Sampaio 25/9/2022, 01:47

    Cleniro,

    verifique se os campos envolvidos na filtragem estão indexados. Veja se este meu artigo ajuda:

    Copie e cole o endereço no seu navegador:
    https://www.usandoaccess.com.br/blog/criar-tabela-temporaria-com-consulta.asp




    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso irrestrito ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.

    Cleniroweb gosta desta mensagem

    avatar
    Cleniroweb
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 71
    Registrado : 16/03/2014

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

    Mensagem  Cleniroweb 25/9/2022, 21:40

    Olá Avelino,

    Fiz a indexação dos campos da tabela de origem mas, infelizmente não funcionou, demora do mesmo jeito. Testei excluindo esse campo calculado e deixei todos os outros campos, inclusive os campos com critérios de filtragem e tudo rodou rápido, seja para Ctrl C, seja para exportar para o excel através de macro, ou para consulta criar nova tabela, ou seja, será que o problema deve estar com o método de cálculo usado no VB que deixa o processamento pesado? O interessante é que o cálculo funciona bem e a consulta não demora abrir.

    Obrigado pela disposição em ajudar,
    Abs,

      Data/hora atual: 1/10/2022, 15:02