Problema con datos "Hora corta" en Access

Tengo un dato de tipo "Fecha/hora" en Access, con formato "Hora corta".
Necesito INTRODUCIR los datos, y presentarlos en todo momento, sin separador; es decir, en formato hhmm en vez de hh:mm.
Cambiando el formato "Hora corta" por "hhnn", el dato se presenta en la forma deseada, pero no se puede introducir directamente así, sino que hay que utilizar el separador.

4 Respuestas

Respuesta
1
Desgraciadamente el tipo que estas usando es fecha/hora, lo que en realidad significa eso es que SIEMPRE necesita una fecha, si no se la proporcionas, la agrega sola en función de unos parámetros que tiene el IDE que estés usando, en este caso, ACCESS., que te quiero decir con esto es que debe ingresarla completa. Podes usar funciones de conversión como
TimeSerial(hora, minuto, segundo)
Ejemplo:
Dim MiTiempo as date
MiTiempo = TimeSerial(16, 35, 17)
' MiTiempo contiene la hora
' correspondiente a 4:35:17 PM.
Suerte!
Claro que siempre necesita una fecha/hora, de hecho quiero que sea así.
Lo único que necesito es que la maneje sin separador, aunque la almacene con él que no haya nunca que ponerlo al introducir el dato (que admita 1226 directamente, y lo almacene y trate como 12:26:00).
No sé si me explico...
Gracias en todo caso.
Si te explicas, quieres trabajar en formato de hora militar.
Lo que puedes hacer es crear una función que te convierta el formato de hora militar a hora común es muna funcon muy simple, algo así como
Public function F_HoraMilitarAstd(byval HoraMilitar as string) as datetime
dim lar as byte
lar = len(HoraMilitar)
F_HoraMilitarAstd = timeSerial(left(HoraMilitar,lar-2),right(HoraMilitar,2))
end Function
El único cuidado que debes tener es que al menos los minutos sean de dos caracteres es decir por ejemplo dos minutos seria 02 y no solo 2, en realidad si te ajustas al formato de la hora militar funcionara.-
Suerte!
AZB
Respuesta
1
Para controlar el formato en el que se introducen los campos de tu base de datos tienes que editar la propiedad "Mascara de entrada" en tu caso la máscara será algo como:
00:00
De tal forma que los dos putos se ponen automáticamente, o en el peor de los casos no tendrás ninguna máscara de entrada y tendrás que introducir a mano los dos puntos cada vez que pongas una hora.
Si lo que quieres es que no aparezcan los dos puntos, ni siquiera autmáticamente, cambia la máscara por:
0000
Muchas gracias, pero si me permites te voy a concretar algo más la pregunta.
La solución que me porpones de máscara 0000 sería ideal, pero no me funciona (me da un error de tamaño al introducir 1226, por ejemplo).
Con formato hhnn y máscara 00:00;;_ ocurre lo que quiero, con la excepción de que, si en vez de introducir un nuevo dato, lo que voy es a modificar uno exsitente, la manera en que se muestra la información para modificar es como hora larga (hh:mm:ss).
¿Habría alguna forma de que respetara la máscara 00:00 también al modificar?
Y por otro lado, habría forma de que la máscara pudiera ser 0000, ¿sin dar error?
Muchísimas gracias.
Pues es Cierto.. con el formato fecha/hora no te deja mucho margen para jugar con las máscaras.
Para que todo funcione correctamente tendrás que poner formato hh:nn y máscara de entrada 00:00.
No entiendo muy bien para que quieres quitarle los dos puntos a la hora, pero para hacerlo creo que tendrás que declarar el campo de tipo texto y entonces ponerle el formato y la máscara de entrada para que te deje introducir solo 4 dígitos, ni más ni menos, así de memoria creo que ambas son 0000. El "problema" estaría en el caso de que quieras hacer operaciones con las horas, en tal caso tendrías que hacerte una función en Visual que convierta tu campo de texto en otro de tipo hora, no es que sea muy complicado pero tampoco es lo más sencillo que se puede hacer con Access.
Efectivamente, necesito calcular sumas y diferencias, de ahí que rehuyera la opción texto, no quería llegar a tanto, de entrada al menos.
En cuanto a tu curiosidad, te diré que el motivo de la consulta es porque se trata de una base de datos para una compañía aérea. En aviación el estándar para tiempos es siempre hora UTC (Greenwich) en formato HHMM, como cuatro dígitos consecutivos (igual que en el caso de la fecha es con seis dígitos, también sin separador).
La operativa no me permite exigir a alguien que trabaja con arreglo a ese estándar que para introducir datos de miles de vuelos (con varios datos de este tipo por cada uno de ellos) tenga que andar arrastrando los dos puntos, sin que además sea estándar...
Muchísimas gracias de todos modos, doy por cerrada la pregunta.
Respuesta
1
En el diseño de la tabla, en el campo correspondiente:
Formato: hhnn
Mascara de entrada 00:00;;_
Te aparecerán los dos puntos, solos, no tienes que teclearlos, únicamente al meter el dato, pero veras el dato como quieres, sin los dos puntos en medio
Respuesta
Solo que se tenga que eliminar el formato en la configuración regional de registro de hora, pero eso presentará problemas al final...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas