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


2 participantes

    Campo calculado - Dias uteis bd access

    avatar
    Manckel
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 29
    Registrado : 31/01/2017

    Campo calculado - Dias uteis bd access Empty Campo calculado - Dias uteis bd access

    Mensagem  Manckel 3/2/2017, 13:19

    Galera, bom dia.

    Preciso de um help...

    Eu tenho um medidor de performance a nível Brasil que mede os tempos de chegada, processamento e envio para pagamento de notas fiscais de fornecedores que basicamente é assim:

    DATA CHEGADA (1) -> DATA EFETIVAÇÃO (2) -> DATA SCANNER P/ PGT (3)

    O que acontece é que os dois  primeiros campos (1 e 2) podem acontecer em feriados e finais de semana, agora o campo 3 só acontece em dias úteis.

    Em uma base excel eu consigo calcular os dias liquidos (uteis) deles com a formula DIA TRABALHO TOTAL, porém por melhor performance de KPI, resolvemos trocar a base de dados para access, que suporta muito mais dados e me dá uma conexão automatic para o power pivot que me tras relatórios automáticos.

    O que acontece é que essa formula DIA TRABALHO TOTAL, na qual abato os finais de semanas e feriados no excel não estou conseguindo aplicar no access ou no power pivot.

    Já dei uma olhada e vi que existem algumas formulas de VBA para solucionar esse problema, mas queria ver se consigo montar apenas um campo calculado que faça isso no BD.

    Gostaria de saber sobre o campo calculado, pois não sei como aplicar o VBA direto no BD em formato folha de dados e também não poderia ser em uma consulta, pois o power pivot não consegue ler consulta, apenas as tabelas.

    Alguém já teve esse problema e saberia me dizer onde posso procurar a solução?
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    Campo calculado - Dias uteis bd access Empty Re: Campo calculado - Dias uteis bd access

    Mensagem  FabioPaes 3/2/2017, 15:02

    Amigo, o que vc precisa é apos lançar a Data do Scaner pagamento, se for feriado ou fim semana, avançara para proximo dia Util...

    Esse caso acontece com a geração de vencimentos de Boletos... Vou lhe indicar alguns tópicos sobre o assunto que resolverá seu problema.

    usandoaccess.com.br/tutoriais/ajustar-data-vencimento-para-dia-util.asp
    https://www.maximoaccess.com/t18170-resolvidoferiados-fixos-e-moveis#134983 <==com Exemplo
    https://www.maximoaccess.com/t965-resolvidosaber-se-uma-data-e-dia-util-ou-feriado


    Copie e cole o link no navegador!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    Manckel
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 29
    Registrado : 31/01/2017

    Campo calculado - Dias uteis bd access Empty Re: Campo calculado - Dias uteis bd access

    Mensagem  Manckel 3/2/2017, 18:29

    Fabio,

    Muito obrigado pela sugestões, eu andei passando por essas linhas de códigos e ainda não cheguei exatamente a onde eu queria.

    Eu achei a linha abaixo e teve (em partes) o resultado esperado:

    public Function DTS(dtInicio As Date, dtFim As Date, Optional HojeTb As Boolean = False, Optional UltTb As Boolean = False) As Integer

    On Error GoTo Err_DTS

    Dim intCount As Integer
    Dim rst As DAO.Recordset
    Dim DB As DAO.Database

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

       If Not HojeTb Then
           dtInicio = dtInicio
       End If
    ' Se desejar contar a data de início, passe True em HojeTb

       intCount = 0

       If UltTb Then
           Do While dtInicio <= dtFim
               rst.FindFirst "[FerData] = #" & Format(dtInicio, "mm/dd/yyyy") & "#"
               If Weekday(dtInicio) <> vbSunday And Weekday(dtInicio) <> vbSaturday Then
                   If rst.NoMatch Then intCount = intCount + 1
               End If
               dtInicio = dtInicio + 1
           Loop
       Else
           Do While dtInicio < dtFim
               rst.FindFirst "[FerData] = #" & Format(dtInicio, "mm/dd/yyyy") & "#"
               If Weekday(dtInicio) <> vbSunday And Weekday(dtInicio) <> vbSaturday Then
                   If rst.NoMatch Then intCount = intCount + 1
               End If
               dtInicio = dtInicio + 1
           Loop
       End If
       DTS = intCount

    Exit_DTS:
    Exit Function

    Err_DTS:
    Select Case Err

    Case Else
    MsgBox Err.Description
    Resume Exit_DTS
    End Select

    End Function



    Esse código fez exatamente o que preciso, no quesito calcular os dias liquidos de um para o outro, considerando apenas os dias uteis, porém para aplica-los eu tive que fazer uma consulta e ai que entra o problema.

    O power pivot não lê consulta, ele somente lê tabelas o que inviabiliza o que preciso.

    Eu fiz com que a consulta executasse uma tabela nova e funcionou, porém fica muito manual o que era para ser automatizado, porque toda vez preciso ir e atualizar quando as tabelas principais recebem os dados.

    Eu consigo por essa linha de códigos direto na minha tabela banco de dados?
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    Campo calculado - Dias uteis bd access Empty Re: Campo calculado - Dias uteis bd access

    Mensagem  FabioPaes 3/2/2017, 18:44

    Amigo, vc precisa nos dizer como esta seu sistema... Pq essa função deve ser chamada no evento apos atualizar do Campo Data...

    Se essa data e preenchida por algum outro codigo, deve chamar a função logo apos a data ser preenchida...


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    Manckel
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 29
    Registrado : 31/01/2017

    Campo calculado - Dias uteis bd access Empty Re: Campo calculado - Dias uteis bd access

    Mensagem  Manckel 3/2/2017, 18:53

    Eu ainda não apliquei o código no BD principal.

    Estava esperando entender se dava para fazer antes de aplicar, por isso os códigos estão em um arquivo separado.
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    Campo calculado - Dias uteis bd access Empty Re: Campo calculado - Dias uteis bd access

    Mensagem  FabioPaes 3/2/2017, 19:31

    Veio corrompido... Poste novamente o Anexo

    Por favor, me diga o que é cada coisa... Lembre-se eu nao conheço seu aplicativo!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    Manckel
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 29
    Registrado : 31/01/2017

    Campo calculado - Dias uteis bd access Empty Re: Campo calculado - Dias uteis bd access

    Mensagem  Manckel 6/2/2017, 17:54

    Segue novamente os arquivos.

    Desculpa a demora, mas tinha esquecido o computador na empresa.
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    Campo calculado - Dias uteis bd access Empty Re: Campo calculado - Dias uteis bd access

    Mensagem  FabioPaes 6/2/2017, 19:02

    Amigo, como você esta tendo problema com a consulta... Sugiro então criar um novo Campo na tabela e chama-lo de DiasTrabalhados

    Então, atualize esse campo utilizando a Função ou até mesmo no Formulário caso o tenha.


    O Ideal mesmo seria no Formulario onde lança esses dados (DataInicio e DataFim) chamaria a função no Evento apos atualizar do campo DataFim que atualizaria com os dias o campo DiasTrabalhados da tabela.


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    Manckel
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 29
    Registrado : 31/01/2017

    Campo calculado - Dias uteis bd access Empty Re: Campo calculado - Dias uteis bd access

    Mensagem  Manckel 13/2/2017, 15:55

    É então, o formulário realmente seria o ideal, porém não sera imputado dados através de formulários.

    Os dados virão todos de relatórios e importados na base access.


    Desculpa a demora, mas não estava no país e acabei não conseguindo dar continuidade no tema.
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    Campo calculado - Dias uteis bd access Empty Re: Campo calculado - Dias uteis bd access

    Mensagem  FabioPaes 13/2/2017, 17:45

    Então amigo, Chame a função no momento em que é enviado os dados para a tabela... seja pela importação ou por relatorios...


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!

    Conteúdo patrocinado


    Campo calculado - Dias uteis bd access Empty Re: Campo calculado - Dias uteis bd access

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 15/5/2024, 16:16