Sumar campos de formato hora en una consulta

Tengo una consulta que me extrae de una tabla llamado registro la lista de horas voladas por un piloto por entre fechas determinadas, lo que deseo hacer es que en un formulario mostrar la suma de todas las horas voladas del piloto entre las fechas determinadas, ya realice una consulta en donde me sale todos los registros de los vuelos del piloto entre las fechas pero lo que no puedo hacer hasta el momento es como sumar las horas que están en un mismo campo y mostrarlo, gracias

P.D.: ¿Me podrías especificar donde trabajar? En la consulta o en el formulario, si es en el formulario donde colocar las expresiones en generador de macro, ¿generador de expresiones o generador de código?

1 respuesta

Respuesta
1

Lo que has de hacer es una consulta de datos agregados.
Si por ejemplo, la tabla HorasVuelo tiene los campos Id_Piloto, fecha, Origen, Destino, Horas, la consulta quedaría así:

SELECT Id_Piloto, Sum(Horas) as TotalHoras FROM HorasVuelo GROUP By Id_Piloto;

Has de tener en cuenta que a diferencia de Excel, si el total de horas es mayor de 24, Access incrementa la fecha y descuenta 24 horas por cada día agregado al resto, es decir, no te presenta 58:32:45 sino que te presenta 04/02/2014 10:32:45.
Si necesitas más ayuda, estaré encantado de hacerlo.

Un saludo.

P.D. Soy muy aficionado a la aviación, por lo que puedo entender lo que me comentas.

Gracias por la pronta respuesta, pues si como podría hacer para que la hora sea mas de 24 horas, gracias

Ah dime el código que me brindaste donde lo coloco en criterio o como disculpa en esta parte ando medio perdido, gracias

El código que te puse lo has de poner en una consulta, es código SQL.

Para presentar más de 24 horas has de crear un módulo, y ahí poner la siguiente función:

Public Function FormatLongTime(Horas As Date) As String
Dim Seg As Integer
Dim Min As Integer
Dim Hor As Integer
Dim Día As Integer
Dim Ini As Date
Ini = DateSerial(1899, 12, 30)
Seg = Second(Horas)
Min = Minute(Horas)
Hor = Hour(Horas)
Día = Abs(DateDiff("d", Ini, Horas))
FormatLongTime = (Día * 24) + Hor & ":" & Min & ":" & Seg
End Function

En la consulta haces la llamada a la función, te quedaría como sigue:

SELECT Id_Piloto, FormatLongTime(Sum(Horas)) as TotalHoras FROM HorasVuelo GROUP By Id_Piloto

hago lo que me indicaste pero me sale un error ahí te coloco una imagen saludos https://www.facebook.com/photo.php?fbid=10153975978345405&set=a.10153975978270405.1073741827.620060404&type=3&theaterhttps://www.facebook.com/photo.php?fbid=10153975978345405&set=a.10153975978270405.1073741827.620060404&type=3&theater

La foto no se ve muy clara, pero lo que sí he visto es que has escrito la sentencia en una cuadrícula de campo, ahí iría una de las partes.
Si pinchas donde pone "Ver", se te despliegan unas opciones, una de ellas es "Vista SQL". Si pinchas en esa opción, se te abrirá una ventana con un texto que empieza con SELECT, eso es la instrucción SQL, es lo que entiende Access cuando ha de hacer operaciones con tablas y consultas.

Yo te puse una instrucción SQL, si te fijas, empieza con SELECT, y a partir de ahí se va definiendo qué es lo que tiene que hacer con los datos.

Si quieres, dime el nombre de la tabla, los campos que tiene y cuales son los que tienen las horas, y te pongo la sentencia SQL, o si lo prefieres, puedes poner la base de datos en un servidor tipo Dropbox, OneDrive, GoogleDocs... y poner el enlace por aquí, y te hago la query para que te funcione.

Un saludo.

Antonio.
P.D. He visto que estás en FaceBook, te he enviado un mensaje. Y las fotos de los aviones son preciosas.

me podrías enviar la invitación nuevamente? no sabia quien eras jajajaja hablamos por ese medio gracias por todo

Si quieres, puedes poner la BBDD en un servidor tipo Dropbox, OneDrive, etc. Personalmente utilizo DropBox, es muy cómodo de usar.

Te pongo un enlace, https://db.tt/U5sFOul7.

Te crea unas carpetas, pones la base de datos, o lo que quieras compartir en la carpeta Public o Publico, o en una que te crees, y luego, con el botón derecho, seleccionas la opción "Compartir enlace a Drop'box" y te copia el enlace en el portapapeles. Después, en el la respuesta, pegas el enlace (Ctrl-V) en el mensaje y así lo puedo descargar.

Es muy cómodo y funciona muy bien.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas