Imprimir página | Cerrar ventana

Numero a formato HH:MM

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=87000
Fecha de impresión: 26/Marzo/2026 a las 17:41


Tema: Numero a formato HH:MM
Publicado por: JuanRB
Asunto: Numero a formato HH:MM
Fecha de publicación: 24/Octubre/2024 a las 12:09
Buenos días,

En access 2013 tengo un campo numero con el valor de 17,50 (es el valor decimal de la jornada de trabajo semanal) y en otro campo (independiente) quisiera que me mostrara 17:30.

Estoy loco buscando y hoy no es mi día, estoy "embotado".

MUCHAS GRACIAS POR VUESTRA AYUDA


-------------
<font color=BLUE>Las oportunidades que tu pierdes, otro las aprovecha.[/COLOR]



Respuestas:
Publicado por: xavi
Fecha de publicación: 24/Octubre/2024 a las 12:46
Hola,

No existe (hasta dónde a mi me consta) una función que haga eso en un solo paso.

Necesitas obtener la parte entera de tu dato de referencia (función Fix) y la parte decimal. La parte  decimal  la multiplicas * 60 y tienes los minutos. Con la función SerieHora creas la hora.

Imaginemos que tu referencia está en un cuadro llamado txtHoras

El origen del otro control deberá ser:

=SerieHora(Fix([txtHoras]);([txtHoras]-Fix([txtHoras]))*60;0)

Puedes hacer lo mismo en una función VBA.

Un saludo




-------------
Xavi, un minyó de Terrassa

http://www.llodax.com" rel="nofollow - Mi web


Publicado por: JuanRB
Fecha de publicación: 24/Octubre/2024 a las 13:01
Muchas gracias XAVI,

El ejemplo me funciona con el numero 17,50, (por debajo de 24) pero cuando en el 

Campo [Jornada_Horas] (número decimal) tengo un valor por encima de 24 (por ejemplo 40 horas semanales) al campo [Horas] (con formato hora corta) me devuelve 16:00 que seria el resultado de 24+16 = 40, cuando lo que debería de mostrar en el campo [Horas] debería de ser: 40:00


-------------
<font color=BLUE>Las oportunidades que tu pierdes, otro las aprovecha.[/COLOR]


Publicado por: xavi
Fecha de publicación: 24/Octubre/2024 a las 13:14
Pues no utilices la función SerieHora y concatena los datos directamente como si fuera un texto. De paso utiliza format para mostrar los minutos con 2 dígitos (opcionalmente también las horas):

=Fix([txtHoras]) & ":" & Format(([txtHoras]-Fix([txtHoras]))*60;"00")


-------------
Xavi, un minyó de Terrassa

http://www.llodax.com" rel="nofollow - Mi web


Publicado por: GOOO
Fecha de publicación: 24/Octubre/2024 a las 22:46
Hola, prueba con esto.

Public Function FormatoHorasAcumuladas(totalHoras As Double) As String
    Dim horas As Long
    Dim minutos As Long

    ' Calcular horas y minutos
    horas = Int(totalHoras)
    minutos = (totalHoras - horas) * 60

    ' Formatear como [h]:mm en excel
    FormatoHorasAcumuladas = horas & ":" & Format(minutos, "00")
End Function


llamarias la funcion:

tucampo = FormatoHorasAcumuladas(horas en formato entero y/o con decimales)


La función te devuelve el resultado como texto (string), creo que tienes una idea o una base para ajustarlo a tus necesidades.

saludos.


-------------
Viendo se aprende y practicando se mejora



Imprimir página | Cerrar ventana