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

requete de calcul de moyenne de temps

4 réponses
Avatar
Txl
Bonjour =E0 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 tour...moyen :)

J'ai r=E9ussi =E0 importer dans access 2007 les temps au format suivant

1:43.258 soit 1 minute 43 secondes et 258 milli=E8mes.

C'est dans une table "23" avec comme nom de champ "tourimport" en mode =

texte

Je cherche donc une requ=EAte pour extraire les minutes, les multiplier =
par =

60, ajouter les secondes et les milli=E8mes pour diviser le tout par le =
=

nombre de tours (d'enregistrements) et retransformer le r=E9sultat en fo=
rmat =

1:43.258

Merci de votre aide

4 réponses

Avatar
Gloops
Txl a écrit le 26/10/2014 18:43 :
Bonjour à tous,

J'ai une liste de temps au tour pour une course de voitures et je
voudrais faire une moyenne pour extraire le temps au tour...moyen :)

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 pa r
le nombre de tours (d'enregistrements) et retransformer le résultat e n
format 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.
Avatar
Txl
Le Sun, 26 Oct 2014 21:15:17 +0100, Gloops a
écrit:

Txl a écrit le 26/10/2014 18:43 :
Bonjour à tous,

J'ai une liste de temps au tour pour une course de voitures et je
voudrais faire une moyenne pour extraire le temps au tour...moyen :)

J'ai réussi à importer dans access 2007 les temps au format suiva nt

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 mod e
texte

Je cherche donc une requête pour extraire les minutes, les multipli er
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
format 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
Avatar
db
Le 26/10/2014 18:43, Txl a écrit :
Bonjour à tous,

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
format 1:43.258



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
Avatar
Txl
ok, ca marche nickel merci,

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





Le 26/10/2014 18:43, Txl a écrit :
Bonjour à tous,

Je cherche donc une requête pour extraire les minutes, les multipli er
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
format 1:43.258



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(mil l)

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 judicie ux
de mettre toutes les voitures dans une même table, en y ajoutant un
champ "NumVoiture"

db

db




--
Utilisant le logiciel de courrier d'Opera : http://www.opera.com/mail/