Necesito consejo sobre utilización de funciones con Microsoft Access

Bien otra vez molestando...
Bien tengo el problema siguiente:
Dim H1 As Variant
Dim H2 As Variant
H1 = Format(L1, "hh:mm")
H2 = Format(L2, "hh:mm")
HTL = Format(TimeValue(H2) - TimeValue(H1), "h:mm")
bien funciona es decir me calcula la diferencia horaria pero el problema radica en lo siguiente si L1=18:00 y L2=00:45 entonces HTL=17:15 si L1=22:00 y L2=03:00 HTL=19:00 como podria solucionar estos problemillas???

1 Respuesta

Respuesta
1
En vez de restar de esta manera, utilice la función DateDiff... esta te puede calcular una diferencia ya sea en fechas (días, meses, años) u Horas(Horas, minutos, segundos)...
HLT = Format(Abs(DateDiff("h", Cdate(H1), CDAte(H2))),"HH:mm")
Aqui la funcion Cdate, simplemente convierte a una variable cualquiera en fecha/Hora valida... utilizo la funcion abs(valor absoluto) para que devuelvo siempre positivo y a esta la formateo.
Me avisas como te va.
Att:tu tucayo
Bien Óscar y gracias por contestar...
He probado lo que dices pero no funciona y no se a que se debe si dejo
HLT = Format(Abs(DateDiff("h", Cdate(H1),CDAte(H2))),"HH:mm")
Siempre que pongo una hora de inicio en L1 y hora de final en L2 y paso a enter pues en HLT siempre da 00:00...
Si quito el final es decir pongo
HLT = Format(Abs(DateDiff("h", Cdate(H1),CDAte(H2)))) funciona pero a medias es decir solo con horas o'clock ya que si pongo por ejemplo en L1=18:30 y en L2=21:00 en HTL me sale HTL=3:
Que es lo que falla...
Dejo lo de antes:
dim H1 as variant
dim H2 as variant
H1=Format(L1,"HH:mm")
H2=Format(L2,"HH:mm")
HLT = Format(Abs(DateDiff("h", Cdate(H1),CDAte(H2))),"HH:mm")
Otra aclaración en L1 y L2 son campos de una tabla al igual que HTL estos están en formato 'hora corta' y en mascara de entrada "00:00;0;_" los dejo así... otra cosa haces utilización de "h" pero que pasa con "n" para calcular los minutos... es decir yo quiero hacer la diferencia de horas y minutos, es decir, si L1=18:00 y L2=21:00 HTL debe ser igual a "03:00" o bien solo 3 pero si es por ejemplo L1=07:30 y L2=09:00 HTL debe ser igual a "01:30" o bien 1:30 no se si me explico bien y otra cosa como se pueden sumar las HTL porque son horarios de semanas y quiero sumarlos...
Gracias amigo Óscar y perdona por las molestias...
Dirás, y porque se aparece hasta ahora... muchas razones, ademas me puse a revisar y era una pregunta que estaba activa y no me había dado cuenta de ella, disculpa
Se que después de 4 meses ya has resuelto la pregunta, pero igual te mando una respuesta:
**********************
RestMin = Abs(Right(TimeExit, 2) - Right(TimeEntry, 2))
If RestMin > 0 Then Rest = 1 Else Rest = 0
RestHoras = Val(TimeExit) - Val(TimeEntry) - Rest
DifHoras = RestHoras & ":" & RestMin
****************************
TimeExit es la hora final y TimeEntry es la hora de inicio...
De todas maneras, y se, que no debería pedirte que la finalizaras, ya que después de tanto tiempo, pero te agradezco que lo hagas...
Y necesitas algo más, no te preocupes, que esta vez, no dejare pasar tanto tiempo..
Att:telemaco

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas