Campo calculado en access 2010 de horas(tiempo) transcurridas, considerando los campo de fecha y campos de horas.

Les agradezco su ayuda para sacar un campo calculado donde me arroje horas transcurridas . Cuento con lo siguientes campo:

Fec_Entrada

Hora_entrada

Fec-Salida

Hora_salida

Intento calcular el tiempo que me ha tomado hacer una reparación desde el momento que ingreso el vehículo a taller hasta el momento que salió. Cuento con el campo de hora de entrada y hora de salida ya que las capturas se hacen fuera de tiempo y en estos campo se captura la hora real de ingreso al taller. Me ha tocado que pueden salir el mismo día, pero pueden salir al día siguiente. Como hago el calculo de horas considerando también los campos de fecha.

Se pueden presentar estos casos:

  • Misma fecha_entrada y fecha_ salida, pero diferente hora
  • Fecha diferente pero puede coincidir o no la hora de entrada ejem: datos en el campos fec _entrada 15/06/2017 hora _entrada 2:00pm y que haya salido fecha_salida 17/06/2017 hora_salida 2:00pm.
  • Fecha entrada15/6/2017 hora entrada 2:00pm y Fec_salida17/06/2017 hora_salida1:00am
  • FEcha_entrada15/06/2017 hora_salida 3:00pm y fecha_salida 17/06/2017 hora_salida 6:00pm

Espero haya sido clara en mi planteamiento y agradezco su tiempo.

3 Respuestas

Respuesta
3

Antes de nada permíteme decirte que ningún ordenador trabaja con fechas. Trabajan con números. Al día 01/01/1900 se le asigno el 1, al día 02/01/1900 se le asignó el 2, etc. Estamos en el 42902. Las horas, minutos y segundos son fracciones de un día. Por ejemplo, el día 13/06/2017 a la 07:40:00 realmente es 42899,32.

Mira la imagen

Para llegar a esos valores 

Por tanto la diferencia entre esas horas de entrada sería de 27 horas y 45 minutos(no está terminado el formulario, es simplemente para darte una idea). Los cálculos se beberían hacer en código, para que no aparezcan todos esos cuadro.

Para no complicarlo mucho te aconsejaría que el campo Horaentrada y Horasalida los pusieras en formato fecha general.

De todas formas, si quieres, repito, si quieres, mándame un mensaje a [email protected](sólo el mensaje) y te mando un ejemplo. Si lo haces, en el asunto del mensaje pon tu alias Virginia Pech, ya que si no sé quien me escribe, ni los abro.

Respuesta
2

Virginia: Dado que me sale sugerida esta pregunta, aparte de lo que Antonio te comenta, si quieres ver un Ejemplo de Aplicación practica, mira este enlace.

http://siliconproject.com.ar/neckkito/index.php/aportaciones 

Ejemplo 25/07/2015 con el título:

Ejemplo de cómo tratar diferencias de horas entre dos horas o dos fechas con hora (fecha larga), tanto para que salga el número de días como el acumulado de horas. De Antonio Savá

Y también otro de Sveinbjorn

Ejemplo 01/08/2015 con el título:

Ejemplo que nos permitirá, definido un horario de trabajo, poder determinar cuántas horas se han realizado dentro de lo que nosotros definamos como "horario nocturno"

Y otro más de Sveinbjorn

Ejemplo 06/09/2015 con el título:

Ampliación del ejemplo anterior (Contar horas nocturnas), la BD divide el total de horas trabajadas entre tres turnos (mañana, tarde y noche). Además, se explica cómo operar con el formato hh:mm:ss

Mis saludos >> Jacinto

Jacinto revise el enlace que amablemente compartiste y encontré el ejemplo y el código, sin embargo no logro hacer que en la consulta del campo calculado "HorasTrabajadas" me arroje el resultado. Estoy usando este

Public Function fncHorasTrabajadas(laFEC_ENTRADA As Date, laHORA_ENTRADA As Date, _
                                laFECHA_SALIDA As Date, laHORA_SALIDA As Date) As Double
    fncHorasTrabajadas = DateDiff("n", CDate(laFEC_ENTRADA & " " & laHORA_SALIDA), CDate(laFECHA_SALIDA & " " & laHORA_SALIDA)) / 60
End Function

Son nueva en esto así que no se como llamar a este código a mi campo "HorasTrabajadas" .

Gracias de antemano.

Virginia: Dime por favor en cual de los tres ejemplos que te sugerí, está ese código que pretendes adaptar. Un saludo >> Jacinto

Respuesta
1

Ocupa la función DateDiff - te permite sacar las horas transcurridas de una fecha a otra

https://support.office.com/es-es/article/DateDiff-funci%C3%B3n-e6dd7ee6-3d01-4531-905c-e24fc238f85f 

Por ejemplo :

Dim aux As Integer
aux = DateDiff("h", Now() - 1, Now())
Debug. Print aux

Esto te imprimira 24 que son las horas de ayer a hoy

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas