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 ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"bouclier" <anonymous@discussions.microsoft.com> a écrit dans le message
news: 6b5901c401d4$d31d16d0$a001280a@phx.gbl...
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 ?
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
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
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.
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]
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/ ------------------------------------
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
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
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
Merci mais je ne fonctionne qu'avec des requetes SQL et les formules de ce genre ne s'y appliquent.
non hein ? ;-)
Bou
Merci mais je ne fonctionne qu'avec des requetes SQL et
les formules de ce genre ne s'y appliquent.
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]
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
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
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bouclier" <anonymous@discussions.microsoft.com> a écrit dans le message
news: 6de101c40200$9cdf9350$a001280a@phx.gbl...
Merci mais je ne fonctionne qu'avec des requetes SQL et
les formules de ce genre ne s'y appliquent.
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.