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

    [Resolvido]Subtração entre horas no relatório

    avatar
    emacsabino
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 190
    Registrado : 29/08/2011

    [Resolvido]Subtração entre horas no relatório Empty Subtração entre horas no relatório

    Mensagem  emacsabino 5/2/2012, 15:22

    Pessoal desde ontem quebro cabeça com isso, eu tenho um relatório que exibe dois campos de uma tabela, sendo que um campo é hora incial, e o outro a hora final, ai coloquei uma caixa de texto e tentei fazer a subtração dos dois campos, coloquei assim: =Val([Tempo2])-Val([Tempo]), e ai tanto faz eu colocar subtração ou soma tipo assim: =Val([Tempo2])+Val([Tempo]), sempre exibe na caixa do texto 00:00:00, ou seja se no campo Tempo tiver 12:25:25 e no tempo2 tiver 12:25:42, qualquer cálculo ou de soma ou de subtração, só aparece 00:00:00. Alguém me ajuda por favor


    Última edição por emacsabino em 5/2/2012, 15:43, editado 1 vez(es)
    avatar
    Convidad
    Convidado


    [Resolvido]Subtração entre horas no relatório Empty Re: [Resolvido]Subtração entre horas no relatório

    Mensagem  Convidad 5/2/2012, 16:11


    Autor: Renato Santos

    Primeiramente é necessário entender como o Access trabalha com datas.
    Suponhamos a seguinte situação:
    Horário inicial: 24/10/2006 23:25:00
    Horário final: 25/10/2006 01:45:00
    Internamente o Access lerá estas datas como 39014,9756944444 e 39015,0729166667 respectivamente.
    A parte inteira significa o dia a partir de 01/01/1900. Já a parte fracionária representa a hora. Se você multiplicar o valor por 24 (horas), obterá a quantidade de horas.
    Para a situação apresentada, você teria a seguinte expressão:
    39015,0729166667 - 39014,9756944444 = 0,0972222223
    0,0972222223 x 24 = 2,3333333352
    Ou seja: 2 horas + 0,3333333352 horas
    Como a hora tem 60 minutos, multiplica-se a parte fracionária por 60.
    0,3333333352 x 60 = 20
    Seu resultado final é 2 horas e 20 minutos.

    Suponhamos uma nova situação:
    Horário inicial: 23/10/2006 23:25:00
    Horário final: 25/10/2006 01:45:00
    39015,0729166667 - 39013,9756944444 = 1,0972222223
    1,0972222223 x 24 = 26,3333333352
    26,3333333352 - Int(26,3333333352) = 0,3333333352
    0,3333333352 x 60 = 20
    Ou seja: 26:20

    Para driblar a limitação do Access na apresentação de intervalos superiores a 24 horas, desenvolvi a função abaixo, com esta finalidade.
    Para utilizá-la, após copia-la em um novo módulo, digite em uma caixa de texto, referenciando os campos que contêm os horários: =Intervalo(Dt_hora_inicial;Dt_hora_final)

    Espero ter ajudado.


    Function Intervalo(Inicio, Termino) As String
    Dim strHoras As String, strMinutos As String
    Dim sglRet As Single

    If IsNull(Inicio) Or IsNull(Termino) Then Exit Function

    sglRet = (Termino - Inicio) * 24
    strHoras = Format(Int(sglRet), "00")
    sglRet = (sglRet - strHoras) * 60
    strMinutos = Format(Int(sglRet), "00")
    If Termino < Inicio Then
    Intervalo = Format(Inicio - Termino - 24, "hh:nn")
    Else
    Intervalo = strHoras & ":" & strMinutos
    End If

    End Function

    avatar
    emacsabino
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 190
    Registrado : 29/08/2011

    [Resolvido]Subtração entre horas no relatório Empty Re: [Resolvido]Subtração entre horas no relatório

    Mensagem  emacsabino 5/2/2012, 16:40

    Excelente, agora eu queria saber como o módulo ficaria se o intervalo mostrasse também os segundos, pois da forma como ficou ele mostra só o intervalo de horas e minutos
    avatar
    emacsabino
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 190
    Registrado : 29/08/2011

    [Resolvido]Subtração entre horas no relatório Empty Re: [Resolvido]Subtração entre horas no relatório

    Mensagem  emacsabino 5/2/2012, 16:51

    Norbs não vou mais te dá trabalho não, você praticamente resolveu o meu problema, eu vou deixar o intervalo somente em horas e minutos mesmo. Valeu meu amigo. Muito obrigado a você e a todos desse forum excelente
    avatar
    Convidad
    Convidado


    [Resolvido]Subtração entre horas no relatório Empty Re: [Resolvido]Subtração entre horas no relatório

    Mensagem  Convidad 5/2/2012, 16:55


    Na maioria dos casos os segundos são desprezíveis.
    Mas, mexendo um pouco daria pra ajeitar...

    Disponha, e obrigado pelo retorno.
    avatar
    Juarez Massaia
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1
    Registrado : 21/10/2013

    [Resolvido]Subtração entre horas no relatório Empty Minutos em decima

    Mensagem  Juarez Massaia 21/10/2013, 22:45

    Boa tarde,
    Li sua publicação e apliquei. blz
    Só precisaria converter os minutos em decimal e criar um campo somando.
    E possível, seguindo a mesma programação?

    Conteúdo patrocinado


    [Resolvido]Subtração entre horas no relatório Empty Re: [Resolvido]Subtração entre horas no relatório

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 06:08