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

IHM Discussion :

Etat avec totaux, moyennes, et nombre d’enregistrements d’une table.


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 102
    Points : 40
    Points
    40
    Par défaut Etat avec totaux, moyennes, et nombre d’enregistrements d’une table.
    Bonjour, Je suis profane en ACCESS 2003. J’ai une table dont chaque enregistrement est un établissement d’un système éducatif . Chaque établissement est identifié par sa région (s’appelle Wilaya ici), son département (s’appelle Moughataa ici), sa commune, son nom, et son code administratif. Chaque enregistrement comprend beaucoup de champs principalement numériques, et parfois sous forme de liste déroulante à plusieurs choix naturellement. J’ai besoin de faire apparaître sur un ou plusieurs états une synthèse de la totalité de ces enregistrements par commune, par département, et par région, c'est-à-dire : le nombre d’enregistrements d’abord, puis soit des totaux de tous les enregistrements numériques, soit leur moyenne, soit pour les listes déroulantes le nombre de chaque choix. Comment dois-je m’y prendre ? Requête ? Regroupement sur champ ? Je vois sur un livre d’aide que ça existe mais je ne sais pas comment m’y prendre. Ma base compactée est à : http://cjoint.com/?glxq5uVGsw, si vous voulez regarder, la table principale où s’enregistrent toutes les données est TF-Compl. Les 4 états qui y existent déjà représentent chacun un établissement et je voudrais la même chose Sous forme de synthèse pour la commune, pour le département, et pour la région , Merci et cordialement.

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut Remarque sur votre formulaire FF-compl
    Mon souci est de vous aider à progresser. Je ne me permettrais pas cette remarque si vous ne vous étiez pas déclaré débutant !

    J’ai lu dans vos postes précédents que votre souci était de limiter le choix des plages de certains champs pour éviter des entrées fantaisistes.
    Je vois que pour une centaine de contrôles vous avez opté pour une liste déroulante avec choix limité de 0 à 500.
    Cela marchera évidemment mais votre formulaire en devient fort surchargé et votre utilisateur risque de perdre son temps à rechercher la valeur ad hoc pour cliquer dans la liste.
    Une autre solution eût été une zone de texte avec
    la propriété ‘valide si’ égale à ‘>=0 Et <=500’ et
    la propriété ‘Message si erreur’ égale à ‘La valeur doit être comprise entre 0 et 500’

    Ce serait un travail considérable de modifier maintenant à la main.
    Voici une SUB qui ferait le travail pour vous.
    Vous copiez ce qui suit dans un module
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub AménagerForm()
    Dim ctl As Control
    DoCmd.OpenForm "FF-compl", acDesign
    For Each ctl In Forms![FF-compl].Controls 'on parcourt la collection des contrôles du formulaire
       If ctl.ControlType = acComboBox Then   ' si c'est une liste déroulante
          If ctl.RowSource = "SELECT [T-ld].[Nombre] FROM [T-ld]; " Then   'avec telle sélection
            ctl.ValidationRule = ">=0 and <=500"   ' on aménage la propriété "Valide si"
            ctl.ValidationText = "La valeur doit être comprise entre 0 et 500"  ' et l'alerte
            ctl.ControlType = acTextBox   ' on lui substitue une zone de texte
          End If
       End If
    Next ctl
    DoCmd.Close acForm, LeFormulaire, acSaveYes   ' on sauve les modif
    End Sub
    Et dans la fenêtre d’exécution, vous tapez :
    <Enter>
    J’ai évidemment testé avant de vous proposer ceci, mais prenez quand même une copie de votre original !
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  3. #3
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut Etats à des niveaux successifs
    Bonjour alainmante,

    Pour les données qui s’additionnent (exemple nombre d’élèves)
    Je crois que recourir à des requêtes de regroupement (sigma) est la bonne voie.
    On regroupe sur le niveau choisi (d’école à global pays).
    On somme toutes les données numériques.
    Pour les données qui résultent d’un choix multiple (exemple le type d’alimentation)
    Pour faire apparaître le nombre d’items, la fonction CpteDom () est, je crois, la mieux appropriée.
    Par exemple, on recherche le nombre d’occurrences de « Eau + Electricité » dans le champ « Alimentation » de la table « TF-IdStEq ».

    Toutefois l’adoption de ces deux principes demande :
    1° une légère modification du lay-out de vos quatre états de manière à ce qu’ils conviennent quel que soit le niveau.
    2° ne plus calculer les ratios et totaux dans la requête source mais les faire dans l’état lui-même. En effet le ratio d’un niveau supérieur n’est pas égal à la somme des ratios du niveau inférieur. En opérant les calculs au niveau des champs de l’état, on évite cet écueil.

    Pour illustrer ceci, voyez la db dans le fichier joint.
    Un exemple de l'état 'ÉF-Equipements' réduit pour montrer le principe de la cascade (cinq niveaux de globalisation).
    Par souci d’uniformisation, au niveau le plus bas (Ecole) on utilise déjà comme source une requête de regroupement (attention, les champs de données deviennent ‘SommeDe…’
    On commence la construction par le niveau école.
    Ensuite Copier/coller de l’état et de sa requête.
    Chaque fois que l’on monte d’un niveau, on supprime dans la requête et dans l’état le(s) champ(s) devenu(s) non significatif(s).
    Voyez aussi la syntaxe (relativement complexe) de la propriété ‘Source contrôle’ de ‘InfrastructureAucune’.
    Notez que le champ calculé ‘TMan util’ n’est pas dans la requête. Il est construit dans le corps de l’état par addition de ses composantes.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 102
    Points : 40
    Points
    40
    Par défaut CpteDom () où et comment ?
    Merci de tout ce que vous venez d’écrire Claude. Pour les listes déroulantes de 0 à 500 : j’ai une contrainte de faciliter au maximum la tâche de celui qui saisit (peu ou pas initié à ACCESS, voire au clavier). Or ce faisant j’avais le 0 permanent dans ma liste, qui permettait entre autres au contrôle calculé de somme en bout de ligne de fonctionner même si aucun effectif n’était saisi. En fait les cases de ces grands tableaux bne sont pas destinées à être toutes remplies, mais représentent surtout toutes les possibilités de structure ici. Ensuite le contrôle calculé, est repris pour l’état, et ne sert ici dans le formulaire qu’à « rassurer » celui qui saisit, auto contrôle visuel en qq sorte, très important pour nous. Mais je vais quand même essayer pour vois si le 0 s’affiche en permanence, primordial pour moi pour les raisons ci-dessus.
    Pour les ratio et %, soit j’en fais une moyenne (opération), soit comme vous le dites je les recalcule sur l’état.
    Pour les sommes ça va, pas trop difficile, par contre pour CpteDom () de nombres de choix de mes listes déroulantes, où dois-je placer cette fonction dans mon état ? je n’ai jamais fait ça.
    J’ai beaucoup de mal à télécharger votre zip, je re essaierai d’un autre poste.
    Merci encore, cordialement.

  5. #5
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    La plupart des réponses à vos questions sont dans le fichier.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  6. #6
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    ce faisant j’avais le 0 permanent dans ma liste
    Dans une table, un champ "numérique" est, par défaut, initialisée à 0.
    Au besoin, vous pouvez choisir une autre valeur numérique. Voyez la propriété 'valeur par défaut' dans la définition du champ.

    Dans un formulaire ou un état, vous pouvez surcharger (pour autant que le type de la valeur soit compatible). Voyez la propriété 'valeur par défaut' du contrôle.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

Discussions similaires

  1. Etat BIRT - exemple de tableau croisé avec totaux, différences, etc
    Par nicolas.1.vives dans le forum Téléchargez
    Réponses: 0
    Dernier message: 30/05/2011, 15h39
  2. Etat BIRT - exemple de tableau croisé avec totaux
    Par nicolas.1.vives dans le forum Téléchargez
    Réponses: 1
    Dernier message: 22/04/2011, 00h39
  3. [QuickReport] Etat avec des sous totaux
    Par sondo dans le forum QuickReport
    Réponses: 3
    Dernier message: 20/01/2009, 11h50
  4. Etat avec des sous-totaux
    Par OraAide dans le forum Reports
    Réponses: 8
    Dernier message: 04/03/2008, 03h14
  5. [CR7] liaison sous etat avec etat principal
    Par brahime dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 04/01/2005, 11h58

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