Modulo mon amour

Le
bouclier
Bonjour,

Lorsqu'on fait la somme de champs HH:MM:SS acces renvoit
une format numrique.

Aussi pour la lisibilit de la chose j'essaye d'extraire
les heures, minutes, secondes de ce champ dans une requete
SQL.

J'ai tent de divis la valeur par le temps d'une heure
puis de faire le modulo de ce resultat par 1 pour obtenir
le resultat auquel j'aurai appliqu la meme operation pour
faire decouler les minutes, seulement voila : dans la
requete SQL (4.2123132 MOD 1) ca donne 0 et pas 0.213132 !
Comment faire ?

Bouclier
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jessy Sempere [MVP]
Le #4836221
Bonjour

C'est normal d'obtenir ce résultat...

Extrait de l'aide Access sur la fonction Mod :
"L'opérateur modulo, ou reste, divise l'argument number1 par l'argument
number2 (en arrondissant les nombres à virgules flottantes à des nombres
entiers) et ne retourne que le reste dans l'argument result."

Tu as une alternative, c'est de multiplier par X des deux nombres à comparer
de manière à ce que tu n'est aucune partie décimale...

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"bouclier" news: 6b5901c401d4$d31d16d0$
Bonjour,

Lorsqu'on fait la somme de champs HH:MM:SS acces renvoit
une format numérique.

Aussi pour la lisibilité de la chose j'essaye d'extraire
les heures, minutes, secondes de ce champ dans une requete
SQL.

J'ai tenté de divisé la valeur par le temps d'une heure
puis de faire le modulo de ce resultat par 1 pour obtenir
le resultat auquel j'aurai appliqué la meme operation pour
faire decouler les minutes, seulement voila : dans la
requete SQL (4.2123132 MOD 1) ca donne 0 et pas 0.213132 !
Comment faire ?

Bouclier
Le #4836171
Merci pour l'info

Mais qu'il est con cet acces ! Excel rend pas du tout le
meme resultat, il travalle au decimal.

Tu as une alternative, c'est de multiplier par X des deux
nombres à comparer de manière à ce que tu n'est aucune

partie décimale...

je vais voir mais avec le nombre de chiffre qu'il y a
apres la virgule pour l'expression d'une seconde ca va
etre lourd.

Bouclier

Jessy Sempere [MVP]
Le #4836141
Re,
Mais qu'il est con cet acces ! Excel rend pas du tout le
meme resultat, il travalle au decimal.


Un néophyte d'Access pourrait dire la même chose sur Excel... ;-)))

je vais voir mais avec le nombre de chiffre qu'il y a
apres la virgule pour l'expression d'une seconde ca va
etre lourd.


Tu peux utiliser la fonction qui suit, elle te transformara ton résultat
dans un format heure genre : 36h 30' 15

************************************************

Function format_temps_complet(Interval) As String
On Error GoTo Err_format_temps_complet
Dim Hours As Long, Minutes As Integer, Secondes As Integer
Dim buffer As String
If IsNull(Interval) Then
format_temps_complet = ""
Else
Hours = Int(Interval * 24)
Minutes = Int((Interval * 24 - Hours) * 60)
Secondes = CInt(((Interval * 24 - Hours) * 60 - Minutes) * 60)
If Secondes = 60 Then
Minutes = Minutes + 1
Secondes = 0
End If
If Minutes = 60 Then
Hours = Hours + 1
Minutes = 0
End If
buffer = ""
If Hours <> 0 Then
buffer = buffer & Right("00" + str(Hours), 2) & "h"
End If
If Minutes <> 0 Then
buffer = buffer & str(Minutes) & "' " & Right("00" +
Mid(str(Secondes), 2), 2)
End If
format_temps_complet = buffer
End If
Exit_format_temps_complet:
Exit Function
Err_format_temps_complet:
MsgBox Error$
Resume Exit_format_temps_complet
End Function
************************************************

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------

Bouclier
Le #4835811
Merci mais je ne fonctionne qu'avec des requetes SQL et
les formules de ce genre ne s'y appliquent.

non hein ? ;-)

Bou
Jessy Sempere [MVP]
Le #4835791
Re,

ben si, y'a aucun pb à les utiliser dans une requête...

Exemple :

SELECT format_temps_complet([TonChampSomme]) As TotalHeure
FROM TaTable;

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bouclier" news: 6de101c40200$9cdf9350$
Merci mais je ne fonctionne qu'avec des requetes SQL et
les formules de ce genre ne s'y appliquent.

non hein ? ;-)

Bou


Publicité
Poster une réponse
Anonyme