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

Modélisation Discussion :

État d'un formulaire contenant 2 sous-formulaires [AC-2010]


Sujet :

Modélisation

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur (improvisé) de base de données
    Inscrit en
    Décembre 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur (improvisé) de base de données
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2014
    Messages : 103
    Points : 73
    Points
    73
    Par défaut État d'un formulaire contenant 2 sous-formulaires
    Bonjour à tous.

    Je m'arrache les cheveux à vouloir créer un état qui reprend, sous forme de tableau, les enregistrements de deux sous-formulaires différents présents dans un grand formulaire.
    J'essaye d'expliquer : j'ai un formulaire bleu (affichage formulaire unique) contenant un sous-formulaire jaune et un sous-formulaire rose (affichages formulaires continus). Ils dépendent de leur table respective, reliées 1 à n.
    Je veux que l'état présente les enregistrements du sous-formulaire jaune du premier enregistrement bleu, puis les enregistrements du sous-formulaire rose de ce même premier enregistrement bleu, puis les enregistrements du sous-formulaire jaune du deuxième enregistrement bleu, et ainsi de suite.
    Comme un schéma vaut mieux qu'un beau discours, j'ai fais un dessin :
    Nom : etat.jpg
Affichages : 312
Taille : 124,1 Ko

    J'y arrive presque avec une requête utilisant des jonctions de type 2, mais ce n'est pas satisfaisant car il met alors sur la même ligne les enregistrements jaunes et roses, alors que je veux que ce soit des lignes distinctes.

    Quelqu'un a-t-il la solution ? Je maîtrise un peu le vba et le sql, mais là ça semble dépasser mes compétences et relever de la modélisation...
    Heeeeelp !

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Bonjour.

    Personnellement je vois 2 façons de résoudre ton problèmes :
    1. Avec un rapport et 2 sous-rapports. À mon avis la solution la plus simple car tu as déjà presque tout fait pour ton formulaire.
      Créer un rapport basé sur la T_Bleu (Rp_Bleu).
      Créer un sous-rapport basé sur la T_Jaune (Rp_Jaune) en liaison avec Rp_Bleu. Définir les propriétés de Agrandissement automatique, Réduction automatique à Vrai.
      Créer un sous-rapport basé sur la T_Rose (Rp_Rose) en liaison avec Rp_Bleu. Définir les propriétés de Agrandissement automatique, Réduction automatique à Vrai.

    2. Avec un rapport et une requête union
      Créer une requête qui présente les données provenant de T_Jaune (Rq_Jaune)
      Créer une requête qui présente les données provenant de T_Rose (Rq_Rose)
      Faire une requête union (Rq_JauneRose) qui est un type de requête particulier qu'on ne peut faire qu'en SQL.

      Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      Select * from [T_Jaune]
      union all Select * from [T_Rose]

      Créer un rapport basé sur Rq_JauneRose

      Les contraintes sont les suivantes :
      les 2 requête Rq_Jaune et Rq_Rose doivent avoir exactement le même nombre de champs.
      Le nombre de champs totals dans Rq_Jaune + Rq_Rose doit êter inférieur à 255 sinon Access met un message d'erreur bizarre et pas rapport.


    Attention dans les rapports le tri est à faire au niveau du rapport. Celui de la source de données est ignoré.

    A+

  3. #3
    Membre régulier
    Homme Profil pro
    Administrateur (improvisé) de base de données
    Inscrit en
    Décembre 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur (improvisé) de base de données
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2014
    Messages : 103
    Points : 73
    Points
    73
    Par défaut
    Merci beaucoup.

    J'ai une autre priorité qui m'est tombée dessus, ça explique que je prenne du temps à répondre.

    J'ai essayé avec la requête union, c'est une méthode qui me plaît davantage, je la trouve plus simple à gérer pour l'état.
    En revanche je m'interroge : pourquoi faire une requête par table, si la requête union ne les utilise pas ?

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Si j'ai bien compris, tu prends des données de ta table Jaune ou de ta table Rose donc il te faut une requête pour chaque source de données.

    Si l'une des tes requêtes ne retourne jamais de données alors oui, elle ne sert à rien mais si elle en retourne de temps en temps il faut la conserver.

    La requête Union fait la "Fusion" entre les 2 sources de données.

    A+

  5. #5
    Membre régulier
    Homme Profil pro
    Administrateur (improvisé) de base de données
    Inscrit en
    Décembre 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur (improvisé) de base de données
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2014
    Messages : 103
    Points : 73
    Points
    73
    Par défaut
    Merci de ta réponse. (désolé, je réponds au coup par coup parce que je n'ai plus que quelques minutes par jour à consacrer à ce dossier)

    En fait, j'avais remarqué que la requête union prenait ses infos directement dans les tables T_jaune et T_rose, pas dans les requêtes Rq_jaune et Rq_rose qui en découlaient. D'où ma question sur l'utilité de ces deux requêtes dans le cadre cette requête union (pas dans le cadre plus général de ma base de données avec mes formulaires et tout et tout : là, je sais bien qu'elles sont utiles).

    Il découle de cette observation une autre question : peut-on faire cette requête union à partir de Rq_jaune et Rq_rose plutôt qu'à partir des tables T_jaune et T_rose ?
    Deuxième question : est-il possible d'inclure dans la requête union des éléments venant d'autres tables liées à T_jaune, T_rose, ou même T_bleu ? En SQL, peut-être ? Mais je maîtrise mal la syntaxe.

    Ces deux questions parce que mon état est assez difficile à mettre en place : au-delà de son "coeur" (la requête union), il doit reprendre quelques éléments dans une table liée à T_bleu et une liée à T_jaune.

    Merci infiniment de ton aide.

  6. #6
    Membre régulier
    Homme Profil pro
    Administrateur (improvisé) de base de données
    Inscrit en
    Décembre 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur (improvisé) de base de données
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2014
    Messages : 103
    Points : 73
    Points
    73
    Par défaut
    Bon, je me réponds à moi-même.

    J'ai inclus cette requête union dans une requête plus large où j'ai ajouté les requêtes provenant des deux tables complémentaires dont j'avais besoin.
    Ça marche ! Mon état a maintenant toutes les informations nécessaires !

    Merci beaucoup de m'avoir fait découvrir la requête union.

    PS. Je me rends compte que cette discussion aurait plus sa place dans la rubrique "Requête et SQL"...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2013] Probléme avec formulaire contenant une sous formulaire
    Par Aimen86 dans le forum IHM
    Réponses: 3
    Dernier message: 31/03/2013, 11h32
  2. Réponses: 5
    Dernier message: 21/10/2009, 15h24
  3. Réponses: 5
    Dernier message: 06/08/2008, 15h11
  4. Réponses: 3
    Dernier message: 21/07/2006, 16h49
  5. Lien sous-formulaire à un autre sous-formulaire
    Par jehhej dans le forum Access
    Réponses: 4
    Dernier message: 25/01/2006, 08h05

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