Problema con formato hora

Buenas, tengo un problema con el formato hora que me está volviendo loco
Quiero ver si al introducir un registro en una tabla, existen registros dentro de un determinado rango de horas (concretamente +- 1 hora y media). Meto la hora del registro en un campo del formulario y ahí debería realizarme el análisis de si está dentro del rango o no. Esto lo hago con un Dlookup.
Para ello me he creado 2 variables:
Dim strHoraInfMismo As String
Dim strHoraSupMismo As String
Y a continuación les introduzco el rango de +- 1 hora y media:
strHoraInfMismo = Me.txtHoraProgramada.Value - #1:30:00 AM#
strHoraSupMismo = Me.txtHoraProgramada.Value + #1:30:00 AM#
Pues resulta que la variable strHoraSupMismo me funciona perfectamente, es decir, si meto por ejemplo el valor 12:00, esta variable me devuelve 13:30 que es lo que yo espero
Sin embargo, la variable strHoraInfMismo en lugar de devolver 10:30 que sería lo esperado, me devuelve "0,4375" con lo que al realizar el Dlookup me da error en el WHERE.
¿Por qué al sumar sí funciona y no al restar? ¿Cómo puedo solucionar este problema para que la resta me devuelva el dato en formato hora?
Muchas gracias!

1 Respuesta

Respuesta
1
Ciertamente no tengo muy claro por qué no te acaba de funcionar.
¿Por qué no pruebas aplicando formato a las variables a través de una función? Es decir, algo así como Format(variable, tipoFormato), donde tipoFormato puedes utilizar, según la ayuda del propio Access:
---VbGeneralDate 0 Muestra una fecha y/o hora. Para números reales, muestra una fecha y hora. Si no hay parte fraccionaria, sólo muestra una fecha. Si no hay parte entera, sólo muestra la hora. La configuración de su sistema determina la presentación de fecha y hora. ---VbLongDate 1 Muestra una fecha utilizando el formato de fecha largo especificado en la configuración regional de su equipo.
---VbShortDate 2 Muestra una fecha utilizando el formato de fecha corto especificado en la configuración regional de su equipo.
---VbLongTime 3 Muestra una hora utilizando el formato de fecha largo especificado en la configuración regional de su equipo.
---VbShortTime 4 Muestra una hora utilizando el formato de hora corto especificado en la configuración regional de su equipo.
Bueno, ya me dirás qué tal.
Aplicando el formato de hora (concretamente el vbShortTime) se ha solucionado el problema.
Sigo sin saber por qué fallaba al principio pero el caso es que ya funciona...
¡Muchas gracias!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas