RE:Restar dos campos Hora corta en una consulta
Te recomiendo que leas lo que sigue con atención y ... unas cuantas veces para extraer correctamente su contenido, no hay nada que no este claramente explicado en ese (al parecer) 'libro maldito' que es la ayuda de Access (por cierto: veraz y gratuita, asi como dispuesta a responder a la tecla F1).
..................................
Para que Access reconozca a esos números o textos (porque en principio para Access solo eso serán) como datos de tipo fecha/hora, hay que indicárselo (decirle que son datos de tipo DATE para Access), asi los trataría de forma adecuada.
Lo mas sencillo es utilizar los medios disponibles en Access, las funciones de dominio integradas, en particular la función CDate que convierte ese tipo numero complejo en 'una fecha Access'.
Por ejemplo asi como origen para un cuadro de texto:
= CDate("02:47") - CDate("02:50")
Quiero destacar que espera como dato un TEXTO que interpretara como fecha (si esta fecha es razonable, por ejemplo no entenderá 30/2/2017 ==> treinta de febrero del año 2017 como una fecha correcta o si la parte horaria es mayor que 23 o minutos/segundos mayores que 59 )
Si tenemos unos cuadros de texto (Hora_1 y Hora_2) en la introducimos un texto que representen fracciones de tiempo (sean horas días o años), lo anterior de podría escribir asi:
= CDate([Hora_1]) - CDate([hora_2])
Es probable que devuelva un numero ya que para Access las 02:47 ==> 0,115972222222222 (para Access la unidad es el día, la hora una fracción del día)
Pero tiene una solución sencilla, le indicamos en el FORMATO del cuadro de texto que lo presente con formato de fecha (equivale a esto):
Format( 0,115972222222222,"hh:nn") ===> 02:47
Si no se indica que los datos son fechas (se convierten a fechas con cualquiera de las opciones que Access ofrece) la interpretación dependerá 'del humor de Access' (esto es: de como interprete el entorno de trabajo) y puede interpretar una operación matemática:
= Val("02:47") - Val("02:50")
Y como la función VAL no reconoce los dos puntos como una cifra se queda con (02) en ambas conversiones y desde siempre 2 - 2 = 0