MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    horas no access com uma casa a mais na centena

    Compartilhe

    cakanilo
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 42
    Registrado : 09/04/2011

    horas no access com uma casa a mais na centena

    Mensagem  cakanilo em Sex 25 Jul 2014, 14:27

    Bom dia,

    surgiu a necessidade de realizar o cálculo de horas no access, até aqui tudo ok, só que o campo devera conter um número a mais na casa da centena, pois se trata de horas de cursos extensos como pós graduação ex:

    180:30:00
    130:30:00
    ___________
    311:00:00 - pois os trinta minutos são somados contando mais uma hora.

    como proceder para a realização do cálculo.

    mathusalmeida
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 263
    Registrado : 30/08/2011

    Re: horas no access com uma casa a mais na centena

    Mensagem  mathusalmeida em Sex 25 Jul 2014, 15:47

    Olá. Tente a opção de formatar data/hora e configure pra qtde de casas decimais você precisa.

    Qualquer coisa pesquise aqui no fórum por somar horas.

    No site do Avelino Sampaio tem um tutorial muito esclarecedor sobre cálculos com horas.

    Veja isso aí.

    cakanilo
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 42
    Registrado : 09/04/2011

    Re: horas no access com uma casa a mais na centena

    Mensagem  cakanilo em Sex 25 Jul 2014, 15:52

    acho que localizei a informação do Avelino e adaptei a minha realizada, funcionou com horas normais até duas dezenas daí em diante solicito a ajuda:

    Option Compare Database
    Public Function fncSomaHora(horaAcumulada1 As Variant, horaAcumulada2 As Variant) As Variant
    Dim ha, ht, sha As Long, sht As Long
    Dim TotalSegundos As Long, Horas As Long, Minutos As Long, Segundos As Long

    'Passa as horas para as Matrizes, aonde podemos extrair os valores pela referência ":"
    'ha = Split(IIf(horaAcumulada = 0, "000:00:00", horaAcumulada), ":")
    ha = Split(IIf(horaAcumulada1 = 0, "000:00:00", horaAcumulada1), ":")
    ht = Split(IIf(horaAcumulada2 = 0, "000:00:00", horaAcumulada2), ":")

    sha = 3600 * ha(0) + 60 * ha(1) + ha(2) 'hora acumulada em segundos
    sht = 3600 * ht(0) + 60 * ht(1) + ht(2) 'hora atual em segundos


    'Total de horas extras acumuladas, em segundos
    TotalSegundos = sha + sht

    'Remonta a hora no formato hh:mm:ss
    Horas = Int(TotalSegundos / 3600)
    Minutos = Int((TotalSegundos - (Horas * 3600)) / 60)
    Segundos = TotalSegundos - (Horas * 3600) - (Minutos * 60)

    fncSomaHora = Format(Horas, "##00") & ":" & Format(Minutos, "00") & ":" & Format(Segundos, "00")

    End Function




    em um evento update do meu form chamo a função.


    Me.Carga_Horaria = fncSomaHora(CargaHoraria1, CargaHoraria2)

    mathusalmeida
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 263
    Registrado : 30/08/2011

    Re: horas no access com uma casa a mais na centena

    Mensagem  mathusalmeida em Seg 28 Jul 2014, 12:37

    Bom dia cakanilo.

    Você leu as dúvidas do tutorial? Às vezes alguém já postou a dúvida que você tá tendo. Se não, posta lá que certamente o mestre Avelino vai te responder.

    Eu vi isso aqui:

    WSenna 12/12/2012 10:10:22

    Amigão, como sabes, há anos me interessei pela soma de horários que ultrapassassem as 24h imposta pelo Access e hoje utilizo muito o seu modelo com satisfação.
    Agora, sem querer abusar, tenho um novo problema:
    Como faria para demonstrar em horas totais um período com início em 10/12/2012 10:00 e témino em 14/12/2012 05:30 ?
    Avelino Sampaio 12/12/2012 13:34:56

    Wsenna,

    Acho que ficaria bem fácil se usarmos a função dateDiff() para retornar com os minutos do intervalo.

    Exemplo, usando as datas que vc informou:

    datediff("n",#12/10/2012 10:00#,#12/14/2012 05:30#) :::> 5490 minutos

    Basta agora converter os minutos para o formato Horas minutos:

    format(int(5490/60),"00") & ":" & format((5490 - (int(5490/60)*60)),"00") :::> 91:30

    Sucesso!


    Espero que ajude. Também estou pesquisando a solução pra você.

    Lembrando que após 24 hrs você pode fazer um Up em sua dúvida.

      Data/hora atual: Sab 03 Dez 2016, 02:22