Bonjours,
Est-ce qu'il existe une fonction sous access qui permet de transformé une durée en minutes vers une durée de type Jours/Heures/minutes sacahnt que la durée peut être de plusieurs jours.
Merci
Bonjours,
Est-ce qu'il existe une fonction sous access qui permet de transformé une durée en minutes vers une durée de type Jours/Heures/minutes sacahnt que la durée peut être de plusieurs jours.
Merci
Bonjour,
Je ne crois pas, mais c'est facile à faire avec les opérateurs :
- division entière,
- et modulo.
le plus long c'est de choisir le format du résultat.
Bon courage,
pgz
C'est un problème tout simple de mathématique
Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Sub test() MsgBox ConvertMinToDay(14592) End Sub Function ConvertMinToDay(lngTime As Integer) As String ConvertMinToDay = lngTime \ 1440 & "j " & _ (lngTime Mod 1440) \ 60 & ":" & (lngTime Mod 1440) Mod 60 End Function
Merci pour votre participation,
Je sais effectivement que c'est un problème de math mais aussi un peu de programmation.
je vous remercie, j'essaye de me débrouiller avec ça
j'ai un champs temps (en minute) qu eje veux faire apparaître dans un etat et convertir en J/H/M. Pour cela j'ai créer une zone de texte dont la sourcede controle est la suivante (c'est un essai pour obtenir les jours)
=MOD (Somme([TEMPS]);1440)
"Temps" est le champs contenant le temps en minute. La zone de texte se situe dans un pied de groupe dont l'opérateueur "somme" sur les enrtegistrements du groupe.
Seulement cela ne marche pas.
la somme d'un champ temps est composée de deux parties
cachées habituellement par le format date
on commence par l'afficher au format madate=cdbl(somme(temps))
on regarde les jours
monjour=int(madate)
on regarde les heures
monheure=int((madate-monjour)*24)
on regarde les minutes
maminute=int((madate-monjour-(monheure)/24)*60)
Je crois que je me suis mal fais comprendre.
Le champs temps est une durée de travail en minute
. Cette durée, je veux la convertir dans un etat sous un format de type Jour/Heure/minute.
exemple :
5000 minutes correspond à une durée de travail de 5 Jours 11 Heures et 20 minutes.
ce n'est pas une différence entre deux dates mais une conversion.
=ent(5000/24/60)
=ent((5000-((ent(5000/24/60))*60*24))/60)
=5000-(ent(5000/24/60)*24*60)-(ent((5000-((ent(5000/24/60))*60*24))/60)*60)
As-tu essayé ce que t'a donné Tofalu en début d'am?
Ce n'est pas ce que tu cherches?
pgz
Youpi ça marche:
Voila j'ai réussi, merci bien. j'ai utilisé la méthode de ramdom. Petite explication de synthèse pour le prochain qui fera une recherche.
J'ai crée une zone de texte dans mon etat avec dans la zone de source de donné&es le code suivant :
pour info "SommeDeTEMPS" est un champs de base de données qui contient une durée en minutes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 =Ent(SommeDeTEMPS/24/60)&" Jours " & ent((SommeDeTEMPS-((ent(SommeDeTEMPS/24/60))*60*24))/60)&" Heures " & SommeDeTEMPS-(ent(SommeDeTEMPS/24/60)*24*60)- (ent((SommeDeTEMPS-((ent(SommeDeTEMPS/24/60))*60*24))/60)*60)& " Minutes"
Autrement pour la méthode de Tofalu avec le bout de code suivant
Je ne sais pas comment l'exploiter car dans les propriété de ma zone de texte, je n'est pas accés à des procédures événementielles.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Function ConvertMinToDay(lngTime As Integer) As String ConvertMinToDay = lngTime \ 1440 & "j " & _ (lngTime Mod 1440) \ 60 & ":" & (lngTime Mod 1440) Mod 60 End Function
Voila, je vous remercie tous de votre participation.
Bonjour,
J'ai un problème similaire à celui de jaq alors je resuscite ce très vieux thread. Je tente de stocker la durer d'une absence en minutes. Donc, au lieu d'un champ date, j'ai un champ numérique. Je veux pouvoir afficher ce temps en jours, heures, minutes et je veux aussi avoir la possibilité de saisir ce temps aussi en jours, heures et minutes. À la base, grâce à la formule de Tofalu, tout va bien (excepté que mes journées ont 7h alors je divise par 420 plutôt que 1440). Le problème est que j'utilise des formulaires continus. Ça me cause quelques problèmes au niveau de l'affichage ou de la saisie.
J'ai 1 champ [Duree] et 3 contrôles pour le manipuler (txtJour, txtHeure, txtMinute)
Scénario #1: Je mets la propriété ControlSource des champs de cette façon : txtJour =Round(Duree / 420; 0), txtHeure = Round((([Duree] Mod 420) \ 60); 0), txtMinute = (([Duree] Mod 420) Mod 60). Tout marche nickel et l'affichage est parfait. Le problème est que je ne peux saisir du temps car ça me dit que le contrôle ne peut pas être modifié car il est lié à l'expression "round(blablabla).
Scénario #2: Je laisse les champs indépendants et je fais afficher les mêmes formules dans la propriété Form Current du formulaire. Je mets une formule pour reconvertir les 3 champs jours, heures, minutes en un seul champ minute sur la propriété Before Update. Ça marche aussi, mais le problème est comme j'utilise un formulaires continus, toutes mes lignes affichent le même temps!
Scénario #3: Je laisse tomber le champ [Duree] et je crée 3 champs différents à la place. Je trouve ça nettement moins élégant et je trouve que ces données seront plus difficiles à manipuler par la suite.
Quelqu'un sait comment je pourrais afficher et saisir le temps de 1 champ correctement dans 3 contrôles différents et ce, dans un formulaire en continu?
Merci à l'avance de votre aide!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager