Access inicio | | | | | |
Olá,
Seja Bem Vindo ao Blog.

Conecte-se ou registre-se e utilize gratuitamente este equipamento, temos exemplos referente a criação de banco de dados e desenvolvimento de softwares e programas utilizando o Microsoft Access.


Administração do Blog AccessDoProgramador.

Aprendendo a Somar/Diminuir Horas

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

04122012

Mensagem 

Aprendendo a Somar/Diminuir Horas






Olá amigos,

Desde já há algum tempo vinha me debatendo com este tema. Como somar horas de uma forma simples, isto é, criar uma função que somasse as horas trabalhadas por um empregado? Descobri que poderia utilizar a função DSum para somar as horas pelo menos até completar 24 horas.


TotalHoras = Format(DSum("DIFERENCA", "tblFuncHoraNormal"), "hh:mm:ss") 'TotalHoras é o nome de uma caixa de texto que receberá o valor total do somatório das horas. DIFERENCA é o nome de uma caixa de texto que receberá a quantidade de horas trabalhadas durante uma semana, digamos, desde que não ultrapasse 24 horas.

Vou tentar elucidar com o seguinte exemplo. Suponhamos que você contrate um eletricista para trabalhar pelo menos 2(duas) horas por dia ao longo de uma semana em sua casa. Crie uma tabela com os seguintes campos IDNOME(NumeraçãoAutomática), NOME(Texto), DATA(Data/Hora), HORAINICIO(Data/Hora), HORAFIM(Data/Hora) e DIFERENCA(Data/Hora).
Crie agora um formulário tabular e no evento Ao Entrar do campo DIFERENCA, coloque o seguinte código:

Private Sub DIFERENCA_Enter()
On Error Resume Next
Dim sIntervalo As Date
If HORAFINAL - HORAINICIAL >= #8:00:00 AM# Then


         sIntervalo = "01:00:00"
         DIFERENCA = (HORAFINAL - HORAINICIAL) - sIntervalo

    ElseIf (HORAFINAL - HORAINICIAL) >= #6:00:00 AM# And (HORAFINAL - HORAINICIAL) < #8:00:00 AM# Then


         sIntervalo = "00:15:00"
         DIFERENCA = (HORAFINAL - HORAINICIAL) - sIntervalo

    ElseIf HORAINICIAL >= #10:00:00 AM# And HORAINICIAL <= #11:59:59 AM# And    HORAFINAL = #1:00:00 PM# Then


         sIntervalo = "00:00:00"
         DIFERENCA = (HORAFINAL - HORAINICIAL) - sIntervalo

    ElseIf HORAINICIAL >= #6:00:00 PM# And HORAINICIAL <= #11:59:59 PM# And HORAFINAL <= #6:00:00 AM# Then


         sIntervalo = "01:00:00"
         DIFERENCA = (HORAFINAL - HORAINICIAL) - sIntervalo

    Else


         DIFERENCA = (HORAFINAL - HORAINICIAL)

End If
End Sub

No Rodapé do formulário, coloque uma caixa de texto com o nome TotalHoras

Bem, a partir de agora é opcional, ou você cria um botão para o código para calcular a soma ou coloque o código no evento Ao Sair do campo DIFERENCA.

Private Sub DIFERENCA_Exit(Cancel As Integer)
TotalHoras = Format(DSum("DIFERENCA", "tblFuncHoraNormal"), "hh:mm:ss")
End Sub
avatar
good guy
Facilitador
Facilitador

Brasil


http://www.goodguyaccessvba.com.br

Voltar ao Topo Ir em baixo

- Tópicos similares
Compartilhar este artigo em: BookmarksDiggRedditDel.icio.usGoogleLiveSlashdotNetscapeTechnoratiStumbleUponNewsvineFurlYahoo!Smarking

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum