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]Somar as horas por mês

    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4772
    Registrado : 06/11/2009

    [Resolvido]Somar as horas por mês Empty [Resolvido]Somar as horas por mês

    Mensagem  Assis 26/4/2022, 09:03

    Bom dia Amigos

    No exemplo que anexo como somar o total de horas de todos os funcionários por mês ?

    [Resolvido]Somar as horas por mês Sem_t261


    Última edição por Assis em 21/5/2022, 16:15, editado 1 vez(es)


    .................................................................................
    *** Só sei que nada sei ***
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Somar as horas por mês Empty Re: [Resolvido]Somar as horas por mês

    Mensagem  DamascenoJr. 26/4/2022, 23:33

    Primeiro descobrimos o total de horas
    Código:
    Soma(Format([abr];"hh"))

    Depois somamos o total de minutos e pegamos a parte inteira da divisão por 60, assim sabendo o total de horas que os minutos acrescentam
    Código:
    Soma(Format([abr];"nn"))\60)

    Juntamos os dois
    Código:
    Soma(Format([abr];"hh"))+(Soma(Format([abr];"nn"))\60)

    Depois descobrimos o que resta de minutos após a divisão da somatória por 60
    Código:
    Soma(Format([abr];"nn")) Mod 60

    Por fim, montamos tudo e preparamos a apresentação do campo
    Código:
    =(Soma(Format([abr];"hh"))+(Soma(Format([abr];"nn"))\60)) & ":" & (Soma(Format([abr];"nn")) Mod 60)


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4772
    Registrado : 06/11/2009

    [Resolvido]Somar as horas por mês Empty Re: [Resolvido]Somar as horas por mês

    Mensagem  Assis 27/4/2022, 12:44

    Damasceno

    Com a última da lista que colocou.

    O valor do circulo está certo.

    Obrigado

    [Resolvido]Somar as horas por mês Sem_t262

    [Resolvido]Somar as horas por mês Sem_t263


    .................................................................................
    *** Só sei que nada sei ***
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Somar as horas por mês Empty Re: [Resolvido]Somar as horas por mês

    Mensagem  DamascenoJr. 28/4/2022, 02:24

    Isso. Com o Nz. Onde referenciar o mês, coloque Nz([abr];0)


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4772
    Registrado : 06/11/2009

    [Resolvido]Somar as horas por mês Empty Re: [Resolvido]Somar as horas por mês

    Mensagem  Assis 28/4/2022, 07:42

    Bom dia Damasceno

    com o  Nz([abr];0), ainda fica pior

    [Resolvido]Somar as horas por mês Sem_t264


    .................................................................................
    *** Só sei que nada sei ***
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Somar as horas por mês Empty Re: [Resolvido]Somar as horas por mês

    Mensagem  DamascenoJr. 29/4/2022, 04:01

    Em um módulo crie essa função
    Código:
    Public Function fncSomaHoras(ByVal strCampo As String) As String

        Dim objRs As DAO.Recordset
        Dim dblTotal As Double
        
        Set objRs = CurrentDb.OpenRecordset("select " & strCampo & " from MapaAnual;")
        
        If objRs.RecordCount > 0 Then
        
            Call objRs.MoveFirst
            
            Do
            
                dblTotal = dblTotal + Nz(objRs(strCampo).Value, 0)
                Call objRs.MoveNext
            
            Loop Until objRs.EOF
            
        End If
        
        Call objRs.Close: Set objRs = Nothing
        
        If dblTotal = 0 Then
            fncSomaHoras = ""
        Else
        
            fncSomaHoras = Format(((Int(dblTotal) * 24) + Format(CDate(dblTotal - Int(dblTotal)), "h")), "00") & _
                           ":" & _
                           Format(CDate(dblTotal - Int(dblTotal)), "nn")
                          
        End If

    End Function

    E na fonte do controle agora use
    Código:
    =fncSomaHoras("jan")


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4772
    Registrado : 06/11/2009

    [Resolvido]Somar as horas por mês Empty Re: [Resolvido]Somar as horas por mês

    Mensagem  Assis 29/4/2022, 08:18

    Obrigado Damasceno

    Perfeito


    .................................................................................
    *** Só sei que nada sei ***
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Somar as horas por mês Empty Re: [Resolvido]Somar as horas por mês

    Mensagem  DamascenoJr. 30/4/2022, 00:07

    O fórum agradece o retorno. Sucesso.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4772
    Registrado : 06/11/2009

    [Resolvido]Somar as horas por mês Empty Re: [Resolvido]Somar as horas por mês

    Mensagem  Assis 21/5/2022, 13:39

    Damasceno

    Deixou de funcionar os totais

    Obrigado e desculpa


    .................................................................................
    *** Só sei que nada sei ***
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Somar as horas por mês Empty Re: [Resolvido]Somar as horas por mês

    Mensagem  DamascenoJr. 21/5/2022, 16:51

    Mais dados a serem trabalhados, mais situações a serem tratadas. Teste.

    Código:
    ...
    Do

        If Nz(objRs(strCampo).Value) <> "" Then
       
            If Split(Nz(objRs(strCampo).Value, 0), ":")(0) >= 24 Then
                dblTotal = dblTotal + _
                          (Split(objRs(strCampo).Value, ":")(0) \ 24) + _
                          CDate((Split(objRs(strCampo).Value, ":")(0) Mod 24) & Mid(objRs(strCampo).Value, InStr(objRs(strCampo).Value, ":")))
            Else
                dblTotal = dblTotal + CDate(objRs(strCampo).Value)
            End If
           
        Else
            dblTotal = dblTotal + CDate(IIf(Nz(objRs(strCampo).Value, "") = "", 0, Nz(objRs(strCampo).Value, 0)))
        End If

        Call objRs.MoveNext

    Loop Until objRs.EOF
    ...


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4772
    Registrado : 06/11/2009

    [Resolvido]Somar as horas por mês Empty Re: [Resolvido]Somar as horas por mês

    Mensagem  Assis 21/5/2022, 17:53

    Obrigado Damasceno

    Bom fim de Semana


    .................................................................................
    *** Só sei que nada sei ***
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Somar as horas por mês Empty Re: [Resolvido]Somar as horas por mês

    Mensagem  DamascenoJr. 21/5/2022, 17:56

    O mesmo. Basketball


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.

    Conteúdo patrocinado


    [Resolvido]Somar as horas por mês Empty Re: [Resolvido]Somar as horas por mês

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 25/4/2024, 05:42