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 :

[Rapport] Fonctionnement de l'événement Au formatage


Sujet :

Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 129
    Points : 93
    Points
    93
    Par défaut [Rapport] Fonctionnement de l'événement Au formatage
    Bonjour à tous,

    J'ai besoin de créer un rapport en partie avec du code et en partie à l'aide du générateur de rapport d'access et je ne comprends pas comment fonctionne cet événement.

    J'ai une bdd dans laquelle sont compilées des données par sujet pour chaque organisme : chaque organisme devait se prononcer sur 1 ou plusieurs des 9 sujets qui existe.

    Je veux un rapport avec 2 niveaux de regroupement :


    Niveau 1 : nom organisme => un contrôle pour nom organisme
    Niveau 2 : titre sujet => un contrôle pour titre sujet

    Donc, j'ai une requête que je lie au rapport dans lequel j'ai créé 2 regroupements. Comme il y a plusieurs champs qui peuvent être vides et que je ne veux donc pas les imprimer, à l'aide d'une procédure que j'ai mis dans l'événement au formatage, je récupère la valeur du contrôle du nom de l'organisme et à l'aide d'un recordset (je charge essentiellement la même requête que celle utilisé pour la source du rapport) je filtre les données de l'organisme. Donc, si l'organisme a traité de plus d'un sujet, le recordset me retourne plus d'un enregistrement. Je place ces informations que je veux par nom d'organisme et par sujet, dans la section détail.

    Ce que je ne comprends pas, c'est que dans l'événement, lorsque je passe en debug, je m'aperçois que l'événement au formatage repasse souvent sur le même organisme, donc mon code se refait quelque fois plus d'une fois pour le même enregistrement.

    De plus, lorsqu'un même organisme traite de plus d'un sujet, les informations dans le détail de chacun des sujets se répètent : les infos du sujet 1 se répète dans celui du sujet 2 et ainsi de suite. Donc, le sujet 2, plutôt que d'avoir uniquement les données de ce sujet, répète les infos du 1er sujet aussi.

    Bref, c'est la cata....

    Je ne sais plus trop quoi faire....

    Par la suite, je me suis dit que j'allais tout le faire en code. Donc, j'aurais utilisé 2 boucles while avec 2 recordset : 1er boucle, je passe au travers toute la table des nom organisme, une 2e boucle interne à cette 1ere pour tourner à travers tous les sujets traité par chacun des organismes. J'utilisais le même canevas que plus tôt en y enlevant la source de données. Je l'ai essayé en me disant que je reproduirais les regroupements mentionnées plus tôt, mais une fois que la procédure s'effectue, je me retrouve avec un rapport sur le dernier enregistrement (donc 3 pages environ au lieu de plus de 200!). Pourquoi avec cette façon les pages ne se sont pas ajoutés au fur et à mesure que je transférais les nouvelles valeurs sur le canevas de rapport? Comment je peux créer ce genre de rapport par code en y ajoutant des pages au fur et à mesure que j'effectue mes 2 boucles?

    En somme, à l'aide du code, j’aimerais faire le type de rapport suivant :

    Cas avec 1 sujet :

    nom_organisme
    --titre sujet abordé
    ---afficher toutes les infos relatives à ce sujet

    Cas avec plus d'un sujet :

    nom_organisme
    --titre sujet abordé
    ---afficher toutes les infos relatives à ce sujet

    -- titre 2e sujet
    ---afficher toutes les infos

    -- titre 3e sujet
    etc.

    Donc, comment puis-je insérer ça dans un rapport et surtout y ajouter des pages à mesure que j'y ajoute les valeurs?

    Quelqu'un a une idée?

    EDIT: vous vous demandez certainement pourquoi je n'utilise pas le générateur de rapport et que je n'y ajoute tout simplement pas les divers contrôles représentants les champs de mes tables concernées. je ne veux pas faire ça parce que plusieurs champs sont vides et je ne veux donc pas les afficher et comme j'ai beaucoup de champ, je regroupe plusieurs champs dans un textbox en les agrégeants avec le code, sinon j'aurais des trous blancs énormes dans mon rapport et des pages blanches inutiles. Voilà pourquoi je ne veux pas faire ainsi.

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Je ne comprends pas pourquoi tu es obligé de passer par du code pour l'affichage alors que tu fais une requête. Il doit y avoir quelque chose qui n'est pas dit.
    Normalement, dans tu as une structure du genre :
    Table Organisme : IdOrganisme - Autres informations
    Table Sujet : IdSujet - Autres informations sur le sujet ...
    Table Detail_Sujet : IdSujet_FK - Poin(i) du sujet qui est liée à la table Sujet
    La table résultante : IdOrganisme_FK - IdSujet_FK qui est liée aux 2 tables Organisme et Sujet

    Donc ta requête devrait partir de la table Detail_Sujet (normalement, tu n'y as que les informations des sujets auxquels chaque organisme a répondu) et tu remontes pour rajouter les tables primaires Sujet et Organisme.
    Il faut vérifier la pertinence des données dans cette requête.

    En partant de cette requête comme source de l'état, il ne doit pas être difficile de faire un regroupement par Organisme et sujet et cela n'afficherait que les informations saisies par chaque Organisme. Il se pourrait qu'il faille filtrer et choisir uniquement les données non-vides.

    Si ce n'est pas comme cela, est-ce que tu peux donner la structure de ta base de données s'il te plait.

    Cordialement.
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

Discussions similaires

  1. [AC-2010] Equivalence de l'évênement au formatage dans un formulaire
    Par jjacques68 dans le forum Access
    Réponses: 4
    Dernier message: 18/10/2013, 17h07
  2. Fonctionnement du bas débit par rapport à l'adsl
    Par Filippo dans le forum Dépannage et Assistance
    Réponses: 15
    Dernier message: 19/07/2006, 11h09
  3. [FLASH MX2004] Les actions des événements souris ne fonctionnent plus
    Par Demco dans le forum ActionScript 1 & ActionScript 2
    Réponses: 7
    Dernier message: 21/04/2006, 21h37
  4. [TDBChart]l'évènement OnDragOver fonctionne-t-il ?
    Par tomtom7 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/01/2005, 17h57
  5. [CR][VS.NET] Événement "Détails" de mon rapport
    Par theflamme dans le forum SDK
    Réponses: 3
    Dernier message: 01/12/2004, 07h07

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