Bonjour à tous,
j'essaie d'illustrer des résultats statistiques sur des graphiques access mais je ne vos pas trop comment m'y prendre entre utiliser l'assistant graphique limité semble t'il à une seule courbe par controle, la création de requête croisée ou sélection, la création de formulaire graphe croisé dont je ne parviens pas à faire apparaître d'autre résultat que la somme de mes champs...
Voici le détail de mon besoin :
Je crée en vba une requête entièrement paramétrable depuis un formulaire.
Je réalise des variables strselect, strwhere, strgroupby et strorderby fonction de ma sélection d'analyse souhaitée.
Je complète ensuite soit avec un strtransform si usage d'une reqête croisée, soit directement mon strselect si requête sélection de 7 champs calculés.
Les 3 premiers d'entre eux, temps total, temps moyen et temps max devront appraître dans un premier graphique.
Les 4 suivants, fréquence moyenne, fréquence max moyenne, fréquence max et FCM théorique (ou calculée) devront appraître sur un seconde graphique.
Je souhaite dessiner les champs totaux sous forme de bâtons et les champs moyennes sous forme de courbes sur le même graphique.
Enfin vous l'aurez compris, ma maille de sélection est variable, toutes les combinaisons sont possibles entre Année, Trimestre, Mois, Semaine et Jour.
Par exemple, je veux mes stats par année / Mois
Ou je veux mes stats par jour
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 SELECT tbl_sport.sport AS [Sport], Year(date) AS [Année], StrConv(Format([date],"mmmm"),3) AS [Mois], Int((Sum(temps*86400))/3600) & ":" & Format(Int(((Sum(temps*86400)) Mod 3600)/60),"00") & ":" & Format(((Sum(temps*86400)) Mod 3600/60),"00") AS [Temps Tot], Int((Avg([temps]*86400))/3600) & ":" & Format(Int(((Avg([temps]*86400)) Mod 3600)/60),"00") & ":" & Format(((Avg([temps]*86400)) Mod 3600/60),"00") AS [Temps Avg], Max(temps) AS [Temps Max], Round(Sum(temps*fmoy)/Sum(temps),0) AS [Frq Avg], Round(Avg(fmax),0) AS [Frq Max Avg], Max(fmax) AS [Frq Max], fcm As [FCM] FROM tbl_sport INNER JOIN tbl_donnees ON tbl_sport.no_sport = tbl_donnees.no_sport WHERE ((date >=#14/04/2002# AND date <=#28/10/2008#)) GROUP BY tbl_sport.sport, Year(date), StrConv(Format([date],"mmmm"),3), Month(date) ORDER BY tbl_sport.sport, Year(date), Month(date);
Pourriez-vous m'indiquer ce qui vous semblerait la meilleure façon de procéder svp, j'ai fouliier plusieurs tutos sur le site mais je ne parviens pas à me dépatouiller du sujet.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 SELECT tbl_sport.sport AS [Sport], Format([date],"dddd") AS [Jour], Int((Sum(temps*86400))/3600) & ":" & Format(Int(((Sum(temps*86400)) Mod 3600)/60),"00") & ":" & Format(((Sum(temps*86400)) Mod 3600/60),"00") AS [Temps Tot], Int((Avg([temps]*86400))/3600) & ":" & Format(Int(((Avg([temps]*86400)) Mod 3600)/60),"00") & ":" & Format(((Avg([temps]*86400)) Mod 3600/60),"00") AS [Temps Avg], Max(temps) AS [Temps Max], Round(Sum(temps*fmoy)/Sum(temps),0) AS [Frq Avg], Round(Avg(fmax),0) AS [Frq Max Avg], Max(fmax) AS [Frq Max], fcm As [FCM] FROM tbl_sport INNER JOIN tbl_donnees ON tbl_sport.no_sport = tbl_donnees.no_sport WHERE ((date >=#01/01//2008# AND date <=#28/10/2008#)) GROUP BY tbl_sport.sport, DatePart("w",[date],2,2), Format([date],"dddd") ORDER BY tbl_sport.sport, DatePart("w",[date],2,2);
Merci par avance de toute votre aide,
@ bientôt
TF
Partager