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


3 participantes

    [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo

    avatar
    Josealdo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 199
    Registrado : 14/12/2012

    [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo Empty [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo

    Mensagem  Josealdo 7/3/2017, 21:44

    Boa noite, estou precisando fazer um calculo de horas com vários intervalos de horários gerados no mesmo dia.
    Entretanto o resultado desejado é a diferença entre o maior intervalo e o menor intervalo. Para desenvolver a ideia antes do BDA, eu fiz em excel mas me deparei com uma situação que não estou conseguindo sair.

    os campos verdes são as formulas, da seguinte forma:
        na coluna "B" ele pega o menor valor do intervalo dentro da data.
        na coluna "C" ele pega o maior valor do intervalo dentro da data.
        na coluna "D" ele pega o maior valor que no caso será sempre 1.

    Na planilha o campo amarelo é o resultado que busco. Que seria:  
       (Maior valor coluna C - Menor valor coluna B)- 1

    Obs: no exemplo na data do dia 08 o calculo funciona perfeito. Pois não há salto no intervalo.

    Só que na data do dia 11 já não funciona o resultado pois há uma quebra no intervalo.

    Na planilha deixei os valores em vermelho pra efeito de entendimento.  O intervalo das 18:00 as 22:00 está saltado pois o intervalo anterior seria: das 08:00 as 16:00.   Ocorreu um salto entre as 16:00 e 18:00, então neste caso a resultante desejada seriam as soma entre os 2 intervalos.
    Espero ter conseguido explicar e conto com a ajuda dos colegas aqui, que sempre tentam de todas as formas fornecer ajuda.

    p.s: A ideia que tenho é no DBA fazer algo parecido com esta tabela, os dados serão recebidos por vários usuários. Por isso que a entrada de dados é complicada, são várias pessoas trabalhando e reportando seus horários, mas o calculo desejado é o horário corrido.
    Fiquem à vontade para opinar caso veja uma outra forma.
    Agradeço.
    Anexos
    [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo Attachmentcalculo intervalos.xlsx
    Você não tem permissão para fazer download dos arquivos anexados.
    (11 Kb) Baixado 8 vez(es)


    Última edição por Josealdo em 7/3/2017, 21:46, editado 1 vez(es) (Motivo da edição : Exemplo do intervalo)
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo Empty Re: [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo

    Mensagem  Alexandre Neves 9/3/2017, 20:01

    Boa noite,
    Crie bd com dados significativos
    Não entendi como detecta o "salto" que refere. Deve ser avaliado objectivamente, caso contrário, não é possível codificar


    .................................................................................
    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
    avatar
    Josealdo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 199
    Registrado : 14/12/2012

    [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo Empty Re: [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo

    Mensagem  Josealdo 9/3/2017, 20:54

    Boa noite.

    Alexandre, obrigado por tentar ajudar.
    Não entendi, quando vc diz: "crie BD com dados significativos". Poderia explicar melhor.
    O BD que estou tentando criar:

    São várias pessoas executando uma tarefa ao mesmo tempo ou não. Sendo que cada pessoa entra com o seu horário de entrada e de saída na atividade. O que busco na resultante é todo o intervalo. Ex: 07:00 as 17:00 são 09:00h pois desconta 01:00. Entretanto resulta desta forma se a cada pessoa que foi entrando e saindo, o intervalo interrupto sem quebra.

    Ocorre uma quebra se por exemplo: começou as 07:00 e o ultimo saiu as 13:00h. Só que depois mais alguém entrou as 14:00 e saiu as 18:00h, entretanto entre as 13:00 as 14:00 não havia ninguém. Para este caso a resultante seria a soma dos 2 intervalos.
    O que não estou conseguindo fazer é que através de código ele verifique que o intervalo é interrupto.
    Através de texto é meio complicado de explicar. Não sei se estou conseguindo.
    philipp.moreira
    philipp.moreira
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 257
    Registrado : 05/02/2016

    [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo Empty Re: [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo

    Mensagem  philipp.moreira 10/3/2017, 01:09

    Jose Aldo,

    Este fórum tem um foco maior no uso e personalização de do Access, um dos softwares do Office que tem um foco no uso como Banco de Dados = Bd.
    Foi a isso que o meste Alexandre se referiu.

    Quanto a sua necessidade fiz um teste aqui e segue anexo uma implementação que pode atende-lo ou melhor auxilia-lo para chegar em uma solução definitiva para sua necessidade.
    Anexos
    [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo Attachmentcalculo intervalos.xlsx
    Você não tem permissão para fazer download dos arquivos anexados.
    (16 Kb) Baixado 10 vez(es)
    avatar
    Josealdo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 199
    Registrado : 14/12/2012

    [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo Empty Re: [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo

    Mensagem  Josealdo 10/3/2017, 10:20

    Bom dia.

    Phillip, agradeço muito pela sua ajuda. Então, como pode ver no meu texto o objetivo é um BD. O anexo em Excel é apenas para tentar demonstrar o que eu estou precisando codificar via Access.

    O exemplo que você colocou não atende, pois é um calculo simples de Excel. Os dados não irão entrar na forma que você apontou. As entradas serão dadas por vários usuários e cada um entrando com tempos distintos. O que preciso é o tempo total decorrido entre todos os os usuários. Ou seja.: uma união do tempo inicial e o tempo final. Entretanto, quando existe uma quebra no intervalo(vazio) então é ai que complica.

    Ex: usuário 1 - 07:00 as 09:30
    usuário 2 - 07:00 as 12:00
    usuário 3 - 06:00 as 08:00

    Resultado: 06:00hs - pois foi decorrido interrupto das 06:00 as 12:00(intervalo).

    Ex com quebra:

    usuário 1 - 07:00 as 09:30
    usuário 2 - 07:00 as 12:00
    usuário 3 - 06:00 as 08:00
    usuário 4 - 13:00 as 14:00

    Resultado: 07:00 - Ocorreu a quebra no intervalo o resultado é a soma dos 2 intervalos.

    Agradeço.



    philipp.moreira
    philipp.moreira
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 257
    Registrado : 05/02/2016

    [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo Empty Re: [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo

    Mensagem  philipp.moreira 10/3/2017, 15:53

    Boa tarde!

    Não estou conseguindo entender esta regra do cenário com "quebra". Que quebra ?
    Pois da mesma forma, parece que está pegando :
    Hora Inicial/Miníma = 06:00 ;
    Hora Fim/Máxima = 14:00 ;
    Resultado (8:00 - 1:00[esta que você informou que sempre será o mesmo valor] = 7:00.

    Pode tentar explicar melhor para tentar ajuda-lo ?

    Obs.: Segue um pequeno teste que fiz.
    Anexos
    [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo AttachmentBd_Estudo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (35 Kb) Baixado 13 vez(es)
    avatar
    Josealdo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 199
    Registrado : 14/12/2012

    [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo Empty Re: [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo

    Mensagem  Josealdo 10/3/2017, 23:26

    Boa Noite.
    Philipp, primeiramente muito obrigado. Por tentar ajudar. E esqueça o excel foi só tentativa de ilustrar.

    Vc está no raciocínio certo, o resultado é exatamente como vc descreveu. Ou seja todos os intervalos de tempo interruptos.

    Seguindo o que vc escreveu para não perder a lógica.

    Os intervalos de tempos: entrada e saída de 1 registro será dada pela mesma pessoa. Entretanto várias pessoas também irão dar entradas e saidas gerando outros registros no mesmo intervalo de tempo(horário) ou não. A resultante neste caso do tempo decorrido é como vc falou.  hora minima e hora máxima - menos 1.

    O que chamo de quebra? É quando ocorre um salto no intervalo (mesma data). No seu comentário o horário máximo foi 14:00.
    Vamos supor que entre 06:00 e 14:00 todos os registros efetuados pelos usuários, mesmo sendo intervalos diferentes se vc fosse colocar numa reta, não iria ocorrer salto.
                             Ex: 06:00 - 07:00 - 08:00 - 09:00 ......  14:00.

    Agora para o correr o salto:  digamos que na mesma data acima  um usuário deu entrada as 18:00 e saída as 19:00.
    Então ocorre o Salto entre 14:00 e 18:00   pois neste intervalo não há registros.
    O salto que me refiro na verdade é um vazio que não ocorreram registros.
    Espero ter conseguido explicar.
    Muito obrigado.
    philipp.moreira
    philipp.moreira
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 257
    Registrado : 05/02/2016

    [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo Empty Re: [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo

    Mensagem  philipp.moreira 11/3/2017, 04:29

    Vamos lá, então deve ser fazer o cálculo agrupando por usuário e por dia/data;

    O cálculo que deve ser feito é:
    Somar os intervalos de horário preenchidos resumindo conforme acima. Exemplo:

    Dados:
    Usuario                               Data                     HrIni                   HrFim                 Intervalo
    Pessoa A                                      01/03/17                           06:00                          09:00                           00:00
    Pessoa A                                      01/03/17                           10:00                          12:00                           00:15
    Pessoa A                                      01/03/17                           13:00                          15:00                           00:30
    Pessoa B                                      01/03/17                           07:30                          12:30                           00:25
    Pessoa B                                      01/03/17                           13:30                          17:30                           00:23

    Cálculo

    Pessoa A, 01/03/17, (6     ->    9              +  10    -> 12                + 13 -> 15) = 7 hras, (0,15+0,30) = 00:45 min
    Pessoa B, 01/03/17, (7,30 -> 12,30[5 hrs]  +  13,3 -> 17, 30 [4 hrs]                ) = 9 hras, (0,25+0,23) = 00:48 min

    Resultado

    Pessoa A, 01/03/17, 6:15 (7 hras - 00:45 )
    Pessoa B, 01/03/17, 8:12 (9 hras - 00:48 )

    Ta certo ?
    avatar
    Josealdo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 199
    Registrado : 14/12/2012

    [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo Empty Re: [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo

    Mensagem  Josealdo 11/3/2017, 13:06

    Bom dia. Obrigado pela ajuda primeiramente.

    Então, não está correto mas está caminhando, vou continuar nos seus dados pra entendimento. onde esta pessoa, vou mudar. Pois a mesma pessoa não tem como registra um intervalo que intercale. Então ficaria assim:

    Dados:
    Usuario                                           Data                              HrIni                          HrFim                        Intervalo
    Pessoa A  (1)                                01/03/17                           06:00                          09:00                           00:00
    Pessoa A  (2)                                01/03/17                           10:00                          12:00                           00:15
    Pessoa A  (3)                                01/03/17                           13:00                          15:00                           00:30
    Pessoa B  (4)                                01/03/17                           07:30                          12:30                           00:25
    Pessoa B  (5)                                01/03/17                           13:30                          17:30                           00:23


    A coluna "intervalo" está calculada errada. O objetivo é o tempo decorrido, e não individual.
    O que busco:  Veja os usuários: 1,2 e 4 os tempos deles se intercalam então o resultado deles é 06:00 as 12:30 resultando: 06:30h

    Usuários 3 e 5 os tempos deles intercalam entre si 13:00 as 17:30 e saltando do outro grupo  que parou  as 12:30(Hr max fim), resultando: 04:30h

    Resultado que busco:  11:00hs que é a soma dos 2 intervalos que é porque ocorreu a quebra do intervalo que falo.

    Supondo que a hora do segundo intervalo horario de entrada não fosse 13:00 e sim algo igual a 12:30 ou menos,  então o intervalo seria interrupto.
    séria das 06:00 as 17:30 resultado final: 11:30hs.

    Acho que agora vai clarear mais um pouco, faz tempo que venho pensando como codificar mas não estou conseguindo.

    Nota: o objetivo do calculo é o tempo decorrido sem interrupção independente da quantidade de registro que ocorra, ou seja não é individual o calculo.

    Obrigado.
    philipp.moreira
    philipp.moreira
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 257
    Registrado : 05/02/2016

    [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo Empty Re: [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo

    Mensagem  philipp.moreira 11/3/2017, 15:23

    Aldo,
    Desculpe, mas, não consigo compreender ou imaginar o cenário.
    Não consigo ver claramente o objetivo.
    avatar
    Josealdo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 199
    Registrado : 14/12/2012

    [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo Empty Re: [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo

    Mensagem  Josealdo 11/3/2017, 21:33

    Philipp, mesmo assim obrigado. Como falei, é até complicado de explicar via texto.

    Coloquei uma imagem tentando representar graficamente.

    Com os dados hipotéticos que falamos antes a resultante do intervalo representei na cor Verde.
    O intervalo do usuário na cor vermelha.
    E o salto do intervalo na cor azul.

    Agradeço pela tentativa de ajudar.
    Anexos
    [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo Attachmentgrafico.xlsx
    Você não tem permissão para fazer download dos arquivos anexados.
    (11 Kb) Baixado 4 vez(es)
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo Empty Re: [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo

    Mensagem  Alexandre Neves 12/3/2017, 09:27

    Bom dia,
    Agora parece ter dados significativos (ou representativos)
    Crie a bd com a tabela e dados que pretende para se trabalhar uma função de cálculo


    .................................................................................
    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
    avatar
    Josealdo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 199
    Registrado : 14/12/2012

    [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo Empty Re: [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo

    Mensagem  Josealdo 3/4/2017, 11:39

    Obrigado pela tentativa de ajuda. Resolvi deixar de lado o desenvolvimento.

    Item não resolvido.

    Conteúdo patrocinado


    [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo Empty Re: [Resolvido]Calcular o tempo decorrido que seja dentro de um intervalo

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/3/2024, 20:27