Como convertir un formato de HH:MM:SS a un entero que muestre segundos totales

Ayer hice una pregunta relativa a cómo agrupar en una consulta categorías iguales para que me sume el tiempo total de cada categoría (se trata de una consulta que muestra el tiempo durante el que se observa una categoría). Al agrupar me salían valores decimales muy raros -0,1231231231-E02 o algo parecido.

He pensado que lo mejor es que, para la consulta, en vez suma de un campo con formato HH:MM:SS, que tenga otro en la tabla donde se me grabe este formato en un número entero de segundo. Por ejemplo, que 0:01:05 se grabe en otro campo como el número entero "65."

La pregunta: ¿Cómo lo hago?

3 Respuestas

Respuesta
3

Pedro: Una Forma Simples es:

Dimd Seg As Integer, TotalSeg As Long

Dim CadHora As Strig

CadHora =Cstr(Me.TxtHora)

Seg = Val(Right(CadHora,2)

If Len(CadHora) = 5 Then

TotalSeg =Seg+3600*Val(Left(CadHora,1))+60*Val(Mid(CadHora,3,2))

Else

TotalSeg =Seg+3600*Val(Left(CadHora,2))+60*Val(Mid(CadHora,4,2))

End If

Creo que no me he dejado nada. Mis saludos >> Jacinto

Pedro: En la respuesta que te he enviado, donde pone>>

If Len(CadHora) = 5 ........ debe poner un 7 en lugar del 5. Saludos >> Jacinto

Respuesta
2

Voy a hacer un poco de historia. Los ordenadores no trabajan con fechas tipo 30/11/2016. Con lo que realmente trabajan es con números. Al dia 01/01/1900 se le asignó el 1, al 02/01/1900 el 2 y así sucesivamente. Tampoco trabajan con horas tipo 17:50 sino con decimales de día. Por tanto, si el campo de 00:05:10 se llama hora, en el evento después de actualizar puedes ponerle

Texto12 = (DatePart("n", [Hora]) * 60) + DatePart("s", [Hora])

Pedro, en la consulta que te dije que hicieras y que dices que te aparece un numero exponencial, me olvidé de decirte que, en las propiedades de ese campo de la consulta le pongas el formato(aunque en el selector no aparezca) Hora larga, como en la imagen

Respuesta
2

Siguiendo con el ejemplo de mi respuesta anterior a la otra pregunta, la forma fácil es añadir otro campo a la consulta que haga esa conversión, usando la función ParcFecha()

Te dejo otro ejemplo ampliado:

http://filebig.net/files/wKhvSrVGWz 

Fíjate que al nuevo campo hay que agruparlo por "Expresión"

Un saludo


Añade tu respuesta

Haz clic para o

Más respuestas relacionadas