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

    [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 : 154
    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 6 vez(es)


    Última edição por Josealdo em 7/3/2017, 21:46, editado 1 vez(es) (Razã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 : 7930
    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 : 154
    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 7 vez(es)
    avatar
    Josealdo
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 154
    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 8 vez(es)
    avatar
    Josealdo
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 154
    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 : 154
    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 : 154
    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 3 vez(es)
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7930
    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 : 154
    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.

      Data/hora atual: 11/4/2021, 13:59