IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Calculs de moyennes, génération de graphes et d'états


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 58
    Points : 31
    Points
    31
    Par défaut Calculs de moyennes, génération de graphes et d'états
    Bonjour à tous.
    Apres avoir demandé de l'aide pour la création de ma base de données (cf : http://www.developpez.net/forums/sho...d.php?t=221473
    merci a ceux qui m'ont donné des conseils, en particulier en_gel_ho)

    je reviens à la charge mais cette fois pour la partie traitement des données.

    Concretement :
    Ma base se compose de 7 tables principales :
    -Table "mere" de saisie de l'entete du rapport
    -6 Tables de notations représentant des "domaines".
    ex : domaine=> Matériel , contient alternativement un champ de notation puis un champ d'observation, puis un champ de notation , puis observation ....
    NoteA | ObservationA | NoteB | ObservationB | ....|

    Mon but est donc d'en tirer des stats (generalement moyennes) mais pas uniquement par champ. Imaginons 10 champs de notations, je vais avoir besoin de faire la moyenne des "champs1&champ2", champs3&4&5 , ... puis de tous les champs.

    je ne suis pas hyper calé en SQL ni meme sur Access donc j'aurai surement besoin de conseils sur "comment m'y prendre", quelles requetes ...

    J'ai du mal à etre clair donc je vais attendre de voir si quelqu'un réagit a mon probleme. Je répondrais aux questions s'il y en a et ca devrait s'éclaircir ^^

    Merci à vous

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    il existe une fonction moyenne
    moyenne([champ1];...[champn]) conviendra parfaitement
    mais elle sera plus difficile à mettre en oeuvre en raison de la structure de la base
    une seule table
    domaine noteA observationA
    domaine noteB observationB

    aurait été plus efficace et plus facile à manipuler

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 58
    Points : 31
    Points
    31
    Par défaut
    Merci.

    J'aurais bien aimé avoir une seule table

    Je vais voir ce que je peux faire avec cette fonction moyenne mais on l'exploite comment?
    Ca ressemble ni à du SQL ni a du VBA. Je vais voir ca

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Août 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 163
    Points : 166
    Points
    166
    Par défaut
    Tu vas voir qu'avec plusieurs tables et les relations qui vont bien, ce sera bien plus simple à gérer qu'avec une seule table, tout simplement parce que si aujourd'hui, tu t'arrêtes à NotationG, et que demain, tu veux aller jusqu'à notationL ou plus, ce sera bien plus simple avec plusieurs tables.

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    Diable !! plus simple et plus évolutif avec plusieurs tables ??
    Déjà tu parles de relation. avec une seule table pas de problème de relation.
    Maintenant soyons fous, imaginons la notation zz, avec 676 tables à gérer, et pourquoi pas
    676 graphiques ou report différents on fait comment pour faire simple et évolutif si la 677 éme notation se présente.
    déjà la seule liste des items suppose de parcourir le tabledefs de la base, là ou une seule requête suffirait ?

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Août 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 163
    Points : 166
    Points
    166
    Par défaut
    J'ai dû lire trop vite... désolé !
    Merci random !

  7. #7
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 58
    Points : 31
    Points
    31
    Par défaut
    Ne vous battez pas, surtout que vous me faites flipper

    Je viens tout juste de boucler les fonctions nécessaires au bon fonctionnement de mon formulaire (j'espere) donc je vais me pencher sur l'analyse plus précisemment maintenant.
    Encore que je n'écarte pas l'exportation vers Excel

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Août 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 163
    Points : 166
    Points
    166
    Par défaut
    Citation Envoyé par spirit69
    Ne vous battez pas, surtout que vous me faites flipper
    Non, il n'en est pas question et de toutes façons face à Random... je ne fais pas le poids... je ne lui arrive même pas au niveau de la première phalange du petit orteil...

  9. #9
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 58
    Points : 31
    Points
    31
    Par défaut
    Bon je fais remonter mon topic avec quelques jours de retard (un peu débordé malheureusement).

    Je suis toujours en galere avec mes calculs de moyennes.

    Calculer la moyenne des valeurs d'un champ d'une table avec telle ou tell condition est une chose simple.
    Mais la je ne veux pas calculer la moyenne de plusieurs lignes d'un champ, mais la moyenne de plusieurs champs d'une seule ligne, en sachant que pour une ligne j'ai plusieurs moyennes à calculer.

    Je ne trouve pas de facon de le faire directement avec Access et du coup j'hésite à tout faire en VB.

    Dans les posts précédents on me conseille la fonction "moyenne" mais je ne vois pas ou l'utiliser, et surtout est t'il possible d'y mettre des conditions (en particulier le WHERE du SQL).

    Idealement je voudrais quelque chose dans ce genre :

    MOYENNE (champA , champB , ChampC) FROM table WHERE identifiant = "id" ;
    (ici je vais avoir besoin de faire la moyenne de plusieurs champs de plusieurs lignes)
    existe il une requete SQL capable de faire quelque chose dans ce genre ?

    Sinon est il possible de passer le contenu d'une table ou d'une requete en mémoire dans un tableau VB ? Auquel cas je ferais mes calculs de cette maniere

  10. #10
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    ceci peut être...
    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
    16
    17
     
    Function moy(ParamArray x() As Variant) As Variant
    Dim s As Double
    Dim nb As Long
    Dim u As Variant
    For Each u In x
    If IsNumeric(u) Or IsDate(u) Then
    s = s + CDbl(u)
    nb = nb + 1
    End If
    Next u
    If nb = 0 Then
    moy = Null
    Else
    moy = s / nb
    End If
    End Function

  11. #11
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 58
    Points : 31
    Points
    31
    Par défaut
    Merci pour le code je le garde sous le coude
    Entre temps j'ai pu trouver une "solution" en récupérant les valeurs saisies dans les formulaire et je calcule mes moyennes la dessus.
    Ca marche parfaitement (meme si c'est pas tres modulable).

    Par contre maintenant je souhaite savoir s'il est possible de passer mes valeurs qui sont en mémoire vers une table via INSERT INTO.
    je m'explique.
    Je stock quelques valeurs dans : MoyVoiesP , MoyAme, MoyPos.
    J'ai une table "Moyenne" de crée et je souhaite dans mon formulaire faire ceci :

    Docmd.RunSQL ("INSERT INTO Moyenne (Moy1 , Moy2 , Moy3) VALUEs (MoyVoiesP, MoyAme, MoyPos;")

    Mais je ne sais pas s'il est possible de faire que la requete prenne mes variables.
    Une idée ?

Discussions similaires

  1. [VBA-E] problème de calcul de moyenne
    Par sat478 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/04/2006, 17h13
  2. Programmation Shell avec Red Hat Calcul de moyenne
    Par jcpoulard dans le forum Linux
    Réponses: 3
    Dernier message: 22/02/2006, 22h08
  3. methode qui calcul une moyenne du traffic
    Par siry dans le forum Développement
    Réponses: 7
    Dernier message: 05/05/2005, 17h16
  4. graph, automate d'état finit, algo de calcul du langage .
    Par Clad3 dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 13/04/2005, 17h01
  5. calculer une moyenne avec une requete externe
    Par allowen dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/01/2005, 16h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo