USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  overflow PRECISO DE AJUDA
SRick
LAVRAS
MG - BRASIL
ENUNCIADA !
Postada em 07/04/2012 13:07 hs            
Galera abaixo está um código que estou usando para somar total de horas, porem quando se tem muitas horas dá um erro "overflow", preciso de ajuada para solucionar este pane, quempuder me ajudar, ficarei muito grato.
 
Henrique
 
Segue o meu código
 
'On Error GoTo fora
If Text2.Text = "" Or Text3.Text = "" Then
       MsgBox "Informe uma data válida", vbExclamation, "Informação de Datas"
       Text2.SetFocus
     Exit Sub
    End If
Dim dtp As Date
Dim dtp2 As Date
dtp = Text3.Text
dtp2 = Text2.Text
 If CDate(dtp) > CDate(dtp2) Then
       MsgBox "A data inicial não pode ser maior que a data final", vbExclamation, "Informação de Datas"
       Text1.SetFocus
     Exit Sub
    End If
Dim totalhours As Long, totalminutes As Long, totalseconds As Long
Dim days As Long, hours As Long, minutes As Long, seconds As Long
Dim interval As Variant, j As Integer
RESP.MoveMin
Do While Not RESP.EOF
If RESP!Data_Deslocamento >= dtp And RESP!Data_Deslocamento <= dtp2 Then
  interval = interval + RESP!Total_Horas
End If
RESP.MoveNext
Loop
totalhours = Int(CSng(interval * 24))
totalminutes = Int(CSng(interval * 1440))
totalseconds = Int(CSng(interval * 86400))
hours = totalhours Mod 24
minutes = totalminutes Mod 60
seconds = totalseconds Mod 60
Hora = Str(totalhours) & ":"
AumentaZero = Right$("0" & Trim(Str(Trim(minutes))) & ":", 3)
Hora = Hora & AumentaZero
AumentaZero = Right$("0" & Trim(Str(Trim(seconds))), 3)
Hora = Hora & AumentaZero
Label1.Caption = Hora & "  Horas fora da fração"
Exit Sub
'fora:
'     MsgBox "Ocorreu um erro no processamento, verifique os campos data", vbExclamation, "Erro na digiração das datas"
   
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
ENUNCIADA !
Postada em 09/04/2012 13:49 hs            
em que linha está dando o overlow?

Mas a principio tente o seguinte

troque

totalhours = Int(CSng(interval * 24))
totalminutes = Int(CSng(interval * 1440))
totalseconds = Int(CSng(interval * 86400))

por

totalhours = Clng(interval * 24)
totalminutes = Clng(interval * 1440)
totalseconds = Clng(interval * 86400)



ps: Clng = Convert To Long (converte valor para longo)

   
Jhonnyz
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 14/04/2012 00:09 hs            
Seria legal você mostrar a linha..

No caso o erro de overflow seria que alguma variável passou do seu limite de armazenamento..

Tente declarar todos seus Ints como Logs só por via de teste e compile para ver oque acontece.
   
SRick
LAVRAS
MG - BRASIL
ENUNCIADA !
Postada em 15/04/2012 10:42 hs            
Obrigado a vocês,
 
Funcionou.
 
Henrique
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página