** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Numero a formato HH:MM
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Numero a formato HH:MM

 Responder Responder
Autor
Mensaje
JuanRB Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 06/Mayo/2004
Localización: España
Estado: Sin conexión
Puntos: 324
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita JuanRB Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Numero a formato HH:MM
    Enviado: 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]
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14926
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita xavi Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 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

Mi web
Arriba
JuanRB Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 06/Mayo/2004
Localización: España
Estado: Sin conexión
Puntos: 324
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita JuanRB Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 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]
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14926
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita xavi Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 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

Mi web
Arriba
GOOO Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 08/Mayo/2012
Localización: Guatemala
Estado: Sin conexión
Puntos: 358
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita GOOO Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 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
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable