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
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
A voir également:
- Somme dans une requête access, comment faire
- Formule somme excel colonne - Guide
- Somme si couleur - Guide
- Acer quick access - Forum Logiciels
- Access appdata - Guide
- Somme en anglais excel - Guide
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
Si tu peux transformer tes minutes en decimale le calcul sera plus facile.
60 minutes = 1
30 minutes = 0,50
15 minutes = 0,25
Comment cela ?
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
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
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.
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.
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
http://www.cijoint.fr/cjlink.php?file=cj201105/cij6VTTSf3.zip
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.
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.
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
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
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
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
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
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