Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Modulo mon amour

5 réponses
Avatar
bouclier
Bonjour,

Lorsqu'on fait la somme de champs HH:MM:SS acces renvoit=20
une format num=E9rique.

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

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

Bouclier

5 réponses

Avatar
Jessy Sempere [MVP]
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" a écrit dans le message
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
Avatar
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

Avatar
Jessy Sempere [MVP]
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/
------------------------------------

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

non hein ? ;-)

Bou
Avatar
Jessy Sempere [MVP]
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" a écrit dans le message
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