Somme dans une requête access, comment faire

Fermé
cyroulette - 29 avril 2011 à 18:46
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 - 3 mai 2011 à 15:44
Bonjour,
Je me suis fait une base de donnée avec access dans laquelle tous les jour je rentre des temps de panne d'une machine, par ex 8h 8h5 ce qui me donne dans une colonne 5 min de panne ,il se peut que j'ai plusieurs enregistrements pour une journée, par ex 8h 8h5 et 14h 14h 30,( cela me donne deux lignes, une de 5 min et une de 30 min ), une fois mes enregistrement faits tos les jours j'ai créer un requêtes qui me donne tous les temps de pannes enregistés sur une période souhaitée ( je tape la date de début et la date de fin et cela me donne tous mes temps de pannes, voilà ensuite je suis obligé d'exporter ces données sous exell pour pouvoir faire la somme des temps de pannes car je ne sais pas comment faire avec access. Quelqu'un peu m'aider svp ?? d'avance merci



A voir également:

7 réponses

Bonjour
Si tu peux transformer tes minutes en decimale le calcul sera plus facile.
60 minutes = 1
30 minutes = 0,50
15 minutes = 0,25
0
Comment cela ?
0
Bonjour
trouver des explications sur internet sur developper.com.
Si cela peut d'aider
[haut]
auteur : Papy Turbo
La différence entre 2 dates indique le nombre de jours. La partie décimale indique une fraction de jour (Ex. 12 heures = 0,5 jour).

Ces nombres peuvent être utilisés dans tout calcul, sans utiliser aucune fonction, même dans une requête SQL.

Pour les calculs sur des heures, multiplier ce nombre par 24.

De même pour les minutes ou les secondes : multipliez par 24*60, ou par 24*60*60.

Exemple 1 : Temps passé sur une activité ou un projet.

Si vous avez travaillé sur une activité quelconque, depuis la date/heure Debut jusqu'à la Date/heure Fin. Utiliser la fenêtre Exécution (F1) pour tester :
Debut = #4/26/2004 22:07:32#
Fin = #4/27/2004 02:38:41#
Duree = (Fin - Debut)*24
? Duree
4,51916666678153
soit un peu plus de 4 heures et demi. Le résultat est un Numérique Double, et non plus une date.

Pour effectuer le même calcul avec DateDiff(), vous devrez extraire d'abord la différence en jours, puis en heures, puis en minutes? puis les ajouter les unes aux autres !

Si vous avez enregistré DebutTempsPasse et FinTempsPasse de chaque activité dans une table des Temps Passés, vous pouvez, dans une requête, calculer directement un total des heures par projet.

Par exemple, utiliser cette requête dans un état pour afficher un résumé des heures par projet :
Select TP.CLEPROJET, Sum([FIN_TEMPS_PASSE]-[DEBUT_TEMPS_PASSE])*24 As HeuresTotales
From TEMPSPASSE TP
Group By TP.CLEPROJET;
De même, vous pouvez ajouter directement des jours, entiers ou partiels, à une date. Utiliser la fenêtre Exécution (F1) :
? now, now + 120
27/04/2004 12:14:04 25/08/2004 12:14:04
120 jours au-delà du 27 avril, nous serons le 25 août.
? now, now + (75/24)
27/04/2004 12:19:35 30/04/2004 15:19:35
75 heures au-delà du 27 avril à midi, nous serons le 30 avril, à 15 heures.

Exemple 2 : Pour chronométrer l'exécution de 2 procédures, et déterminer la plus efficace.

Nous pouvons également stocker le résultat dans une variable de type Date, afin de bénéficier immédiatement du format d'affichage Date/Heure.
Public Function CompareProcedures() As String
Dim Debut As Date, Fin As Date
Dim Duree1 As Date, Duree2 As Date
Dim Pointeur As Long
'Commencez avec 1000 et augmentez ce chiffre,
' jusqu'à ce que les résultats soient significatifs.
Const NBITERATIONS = 1000000

'Tester la 1ère procédure
Debut = Now
For Pointeur = 1 To NBITERATIONS
Procedure1
Next
Fin = Now
Duree1 = Fin - Debut
'Tester la seconde procédure
Debut = Now
For Pointeur = 1 To NBITERATIONS
Procedure2
Next
Fin = Now
Duree2 = Fin - Debut
'Renvoyer les résultats :
CompareProcedures = "Chaque procédure a été exécutée " & NBITERATIONS & " fois, en " _
& vbCrLf & "1ère : " & Duree1 _
& vbCrLf & "2ème : " & Duree2
Beep
MsgBox CompareProcedures
End Function
L'affichage de Duree1 et Duree2, variables de type Date, sera directement exprimé en hh:min:sec. Exemple, dans la fenêtre Exécution (F1) :
? CompareProcedures
Chaque procédure a été exécutée 1000000 fois, en
1ère : 00:00:42
2ème : 00:00:29
La seconde procédure est plus efficace que la 1ère. On a souvent des surprises ! :D
0
http://www.commentcamarche.net/forum/affich-21978982-wampserver-2-jaune
0
bonjour, cela me semble bien compliqué,
dans ma requête j'arrive à afficher mes temps de panne, mais ce que je voudrais c'est que en bas de ma colonne temps de panne cela me calcul la somme de cette colonne directement dans acces plustot que je sois obligé de l'exporter dans exell pour le faire.
0
bonjour
Le résultat de la requete est exprimé de quelle manière. Total en minute?
Vous pouvez le faire dans un état avec un champ calculé.
Vous Inscrivez = somme([ NomDuChamp])
Si vous ne trouvez pas, pouvez vous me faire parvenir votre base al'aide du site cijoint.com.
0
Je vous ai fait un exemple vite fait .Allez sur ce lien ou le recopier.
Cette exemple calcul le temps en décimal.
Exemple: pour 1h15mn en décimal = 1,25
Pour le calcul vous transformez les minutes en centieme.
1minute= 0,6
Vous trouverez la requête de calcul, un état avec le résultat

http://www.cijoint.fr/cjlink.php?file=cj201105/cijhE5tyCe.zip
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bonsoir,
Je vai essayer de poster la base de donnée sur le sîte.
0
voici le lien de la base, pour voire les requ^^ete il faut aller dans le menu analyse
http://www.cijoint.fr/cjlink.php?file=cj201105/cij6VTTSf3.zip
0
bonjour
bien recu la base
Une premiere analyse de ta base me dit qu'elle ne fonctionnera pas correctement.
Tu as aucune relation entre tes tables. Tu as fait des tables pour chaque machine. Il faut les regrouper .
Faire une analyse plus précise des besoins pour obtenir les objectifs voulu.
0
Bonsoir,
comment cela les regrouper, pour l'instant j'arrive à la faire foctionner en y rentrant tous les jours mes données, il faut cliquer sur ok lorsqu'elle mets des message au démarage de plus il y a effectivement des page qui ne sont pas encore utiliser car je l'ai repris d'une autre base beaucoup plus complexe. mais pour ma question il faut aller dans le menu analyse , aller par exemple sur l'analyse " teseo" cela demande date début, taper par eemple 01/02/2011 et date de fin par exemple 01/03/2011 cela va donner un récap de tout se qui s'est passer ce mois là et il y a une colonne temps d'intrevention et c'est la somme de ces temps que je voudrais faire apparaître. pour le reste si tu as des conseils à me donner pour l'améliorer je suis preneur.
0
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
3 mai 2011 à 00:19
Bonjour
Pour afficher le total d'heure dans l'etat de ta base, tu créais un champ independant dans le pied d'etat au format date heure.
Tu inscris a l'interieur = Somme([TEMPS D'INTERVENTION])
Tu auras le total des enregistrements
0
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
3 mai 2011 à 15:44
Bonjour

http://www.cijoint.fr/cjlink.php?file=cj201105/cijGJ6urc6.zip

Je t'ai fait un regroupement d'enregistrements dans une table puis un etat ou tu as tout les temps total par type d'appareil
Pour ce qui de faire apparaitre le temps total pour un periode issue de ta requete, ce n'est pas possible.
Tu peux essayer de faire une requete d'analyse croisée
0