Visual Basic - Problema con suma consecutiva de horas

Life is soft - evento anual de software empresarial
 
Vista:

Problema con suma consecutiva de horas

Publicado por Jorge (18 intervenciones) el 15/08/2006 16:25:56
Que tal, si alguien pudieses ayudarme le estaria bastante agradecido, el problema es el siguiente:
Necesito leer de una tabla una cantidad N de registros los cuales estan en formato de horas (hh:mm:ss), y sumarlos de manera consecutiva, el primer problema que tenia (el cual solvente con un codigo que consegui) era el de sumar estas horas consecutivamente y que cuando llegase a a las 12 no comenzará de nuevo desde la 1, el código que consegui se encarga de evitar esto y que la suma sea consecutiva, pero tengo un nuevo problema, y es que mientras la suma de registro no exceda 24:00:00 no hay ningun problema, pero cuando este las excede el programa da error y dice que no coinciden los tipos, aqui dejo la rutina que consegui por si a alguien le es util y para mas o menos graficar el problema.

'---------------------------------------------------------
'
' TimeToString
'
' Código escrito originalmente por Juan M. Sánchez.
' Estás autorizado a utilizarlo dentro de una aplicación
' siempre que esta nota de autor permanezca inalterada.
'
' Este código se brinda por cortesía de
' Juan M. Sánchez
'
Function TimeToString(Interval As Double) As String
TimeToString = DateDiff("h", 0, Interval) & _
Format$(Interval, ":nn:ss")
End Function

temp = TimeToString(CDate(HorasTotal) + CDate(Calcula))
Calcula = temp

en un principio utilze la misma variable Calcula para que se incrementara asi mismo pero no funciono, esto es lo ultimo que he intentado pero me sigue dando fallas, "Horas total" y "Calcula" estan dimensionados como Date, el "temp" esta como String ya que no consigo dimensionarlo de otra manera donde pueda guardarse, evidentemente se que el problema debe venir con el hecho de que la variable sea string pero no consigo otra manera de definirla, bueno este es mi problema si alguien me puede ayudar le estaria agradecido.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 7
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

RE:Problema con suma consecutiva de horas

Publicado por El viejo charles (262 intervenciones) el 15/08/2006 17:23:10
Bueno colega, te cuento que tu problema no es error de suma si no mas bien del tipo de dato que manejas en tu base de datos y en el codigo, los cuales contienen una misma caracteristica y es la hora hh:mm:ss
en la base de datos si tu colocas el campo que guarda estos datos de tipo TIME, por razones logicas la base de datos reconoce que las horas llehgan solo hasta 24:59:59 si en tu codigo tu le guardas un datos con estas caracteristicas que esxceden las 24 horas como 27:56:30 te saldra un error ya que para la base de datos esos datos no conincides con el tipo de datos que tu declaraste al campo, entonces... (dejemos tanta chachara)
lo que tienes que hacer es cambiar el tipo de dato en la base de datos y colocala mejor a VARCHAR(10) en caso tal que tu base de datos sea mysql o sqlserver o alguna que maneje ese tipo de datos, o si lo que tienes es una base de datos access entonces coloca el campo de tipo texto con un maximo de 10 caracteres porque de seguro que lo que deseas es que tu programa haga esto:

Dim Tiempo1 As Date, Tiempo2 As Date
Tiempo1 = "09:24:30"
Tiempo2 = "12:00:03"

resultado = (Hour(Tiempo1) + Hour(Tiempo2)) & ":" & (Minute(Tiempo1) + Minute(Tiempo2)) & ":" & (Second(Tiempo1) + Second(Tiempo2))
MsgBox resultado

Esto devuelve 21:24:33, espero y sea la ayuda que necesitas, suerte colega
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar