requete de calcul de moyenne de temps
Le
Txl

Bonjour à tous,
J'ai une liste de temps au tour pour une course de voitures et je voudra=
is =
faire une moyenne pour extraire le temps au tourmoyen :)
J'ai réussi à importer dans access 2007 les temps au format suivant
1:43.258 soit 1 minute 43 secondes et 258 millièmes.
C'est dans une table "23" avec comme nom de champ "tourimport" en mode =
texte
Je cherche donc une requête pour extraire les minutes, les multiplier =
par =
60, ajouter les secondes et les millièmes pour diviser le tout par le =
=
nombre de tours (d'enregistrements) et retransformer le résultat en fo=
rmat =
1:43.258
Merci de votre aide
J'ai une liste de temps au tour pour une course de voitures et je voudra=
is =
faire une moyenne pour extraire le temps au tourmoyen :)
J'ai réussi à importer dans access 2007 les temps au format suivant
1:43.258 soit 1 minute 43 secondes et 258 millièmes.
C'est dans une table "23" avec comme nom de champ "tourimport" en mode =
texte
Je cherche donc une requête pour extraire les minutes, les multiplier =
par =
60, ajouter les secondes et les millièmes pour diviser le tout par le =
=
nombre de tours (d'enregistrements) et retransformer le résultat en fo=
rmat =
1:43.258
Merci de votre aide
Bonjour,
Pourquoi pas plutôt SELECT AVG(tourimport) FROM 23 ?
Le formatage étant du ressort de l'interface ...
Entre parenthèses, il ne faut pas avoir froid aux yeux pour appeler une
table 23.
Bonsoir,
Merci du tuyau mais comme a ce moment la c'est du texte je pense qu'il
faut que je transforme le tout en secondes.milliemes avant de faire le
calcul, non ?
la table 23 s'appelle commme ca parce que c'est le numéro de la voitur e,
il y a une table pour chaque voiture....
Merci
Bonsoir,
Dans un module, mettre les deux fonctions suivantes :
Function StrTimeToInt(strTime As String) As Long
Dim mn As Long, sec As Long, mill As Long
Dim c1 As Byte, c2 As Byte
c1 = InStr(strTime, ":")
c2 = InStr(strTime, ".")
mn = Mid(strTime, 1, c1 - 1)
sec = Mid(strTime, c1 + 1, c2 - (c1 + 1))
mill = Mid(strTime, c2 + 1)
StrTimeToInt = mn * 60000 + sec * 1000 + mill
End Function
Function IntToStrTime(intTime As Long) As String
Dim mn As Long, sec As Long, mill As Long
sec = Int(intTime / 1000)
mill = intTime - sec * 1000
mn = Int(sec / 60)
sec = sec - mn * 60
IntToStrTime = Trim(Str(mn)) & ":" & Trim(Str(sec)) & "." & Trim(mill)
End Function
puis créer la requête suivante :
SELECT IntToStrTime(Avg(StrTimeToInt([tourimport]))) AS TempsMoyen
FROM 23;
C'est du brut de fonderie : il n'y a pas de gestion d'erreur dans les
fonctions. Il faudra sans doute en rajouter.
Et plutôt que de faire une table par voiture, il serait plus judicieux
de mettre toutes les voitures dans une même table, en y ajoutant un
champ "NumVoiture"
db
db
Je vais faire évoluer la base pour avoir les temps de plusieurs autos dans
la meme base et ensuite je reviens vers vous avec les questions suivante s.
Merci
--
Utilisant le logiciel de courrier d'Opera : http://www.opera.com/mail/