RE:Pasar horas a numerico
Los campos fecha/hora se guardan como números dobles donde la parte entera corresponde a la fecha y la parte decimal a la fracción decimal de un día.
Si vas a la ventana de inmediato del editor de VBA y escribes
? #16:50# + 2
Te devuelve 01/01/1900 16:50:00 , es decir, que al sumar 2 le has sumado dos días (0 es el 30/12/1899) Si sigues sumando cifras y observando el resultado verás fácilmente cómo la parte entera son los días.
Si hacemos:
? cdbl(#16:50# + 2)
El resultado es:
2,70138888888889
Y si hacemos
? cdate(0.70138888888889 ) (Le hemos restado el 2 que habíamos añadido)
El resultado es
16:50:00
Osea, que las fechas se guardan como números y luego se representan en distintos formatos.
Sin embargo, las horas no se representan en el sistema decimal y, por tanto, para operar con ellas no podemos hacerlo directamente tal como se representan, sino que tenemos que usarlas en decimal y luego representarlas de otra forma. Es decir, si queremos sumar una hora, no podemos hacer
#16:20# + 1
Pues esto nos sumaría un día. Lo que debemos hacer es
#15:20# + (1/24)
Aparte de las funciones cdbl() y cdate() para pasar fechas a números dobles y viceversa, para operar con horas busca ayuda acerca de las funciones Timeserial() , Hour(), Minute() Y Second() Especialmente Timeserial te resultará de mucho interés.
Saludos
José Bengoechea Ibaceta