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

VBA Access Discussion :

Deux sous-formulaire liés par une relation 1 à 1


Sujet :

VBA Access

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Deux sous-formulaire liés par une relation 1 à 1
    Bonjour,

    Voilà mon problème :

    J'ai deux tables qui cohabitent : T_Site et T_Mission avec une relation 1 à n entre ces deux.
    Mon formulaire principal F_Site a comme source : T_Site
    Mon sous-formulaire F_mission a comme source : T_Mission avec champ père Numero_Site et champ fils N_Site.
    Comme ma table T_Mission contient un nombre incroyable de données, pour optimiser l'affichage du formulaire F_mission sur un seul écran, j'avais besoin qu'en fonction de la valeur d'un certain contrôle de mon formulaire F_mission (contrôle Client), je n'ai que tel ou tel contrôle de ce formulaire qui s'affiche. J'aurais pu utiliser les propriétés .visible des contrôles mais en mode création, la mise en page aurait été ingérable.
    J'ai donc trouvé une solution de créer deux autres formulaires, qui contiennent les contrôles conditionnels désirés, qui ont également comme source T_mission et qui deviennent des sous-formulaires de F_mission. On les appelera F_mission_1 et F_mission_2. En fonction de la valeur du contrôle Client de F_mission, je mets donc la propriété .visible de l'un ou de l'autre à True ou False. Ces sous-sous-formulaires ont donc une relation 1 à 1 avec le sous-formulaire F_mission. Dans la relation qui les lie, le champ père est donc égal au champ fils (champ Id_mission de la table T_mission).

    Jusque là tout va bien. Si je modifie un enregistrement existant, tout se passe bien.

    Par contre, si je veux créer un nouveau site dans mon formulaire F_Site, après avoir créé mon nouvel enregistrement, dès que je vais aller cliquer dans un de mes deux sous-sous-formulaires F_mission_1 ou F_mission_2 (je n'ai pas l'erreur lorsque je modifie juste le sous-formulaire F_mission), le message d'erreur suivant s'affiche : "Vous ne pouvez pas ajouter ou modifier un enregistrement car l'enregistrement associé est requis dans la table 'T_Site'". Je ne comprends pas ce message dans la mesure où l'enregistrement est bien créé dans T_Site au moment où je vais cliquer dans un de mes deux sous-sous-formulaires.
    Par contre si je quitte l'application et que je reviens sur mon enregistrement T_Site nouvellement créé, là je peux faire toutes les modifs que je veux dans mes sous-sous-formulaires sans aucun problème ! Mais il est un peu gênant de devoir quitter l'application à chaque fois que je veux rajouter un Site dans ma base ...

    J'espère avoir été clair ! Pouvez-vous m'aider ???

  2. #2
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 45
    Points : 44
    Points
    44
    Par défaut .Requery
    Allo,

    Il me semble que lorsque tu ajoutes le premier enregistrement dans le formulaire principal, tu dois faire un .requery ou refresh(je ne me rappelles plus) pour mettre les autres sous-formulaires à jour. C'est pour cette raison qu'en refermant et en ouvrant de nouveau, ça fonctionne(les sous-formulaires et leur sont automatiquement rafraîchis).

    Au plaisir,


    Isabelle

  3. #3
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Hello !

    C'est bien dans le sens que te donnes Isabelle qu'il me semble que tu doives te diriger !
    Par exemple - vu que tes deux sous-formulaires sont cachés - tu peux créer deux boutons pour les faire apparaître. Ainsi, dans le code de chaque bouton tu pourrais y inclure un "requery"

    P.S. Si c'est possible, merci de synthétiser un peu ta prose

    Cordialement,

    Bernard.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Merci mais ...
    Bonjour,

    Merci pour cette piste, mais je l'avais déjà explorée. J'ai fait un requery de l'ensemble de mes formulaires (principal, sous-formulaires + mes 2 sous-sous-formulaires) après MAJ, malheureusement le résultat était le même ...
    Si cela peut vous aider, ce problème vient de ma relation père-fils entre sous-formulaire et sous-sous-formulaire à partir de la même clef de la même table (Id_mission).

    En effet j'ai testé quelque chose : si je rentre comme champ père et champ fils par exemple deux champs qui caractérisent strictement une seule fois la mission (ce qui revient donc "théoriquement" à prendre comme champ père et champ fils Id_mission qui, à lui seul, identifie la mission), je n'ai plus ce message d'erreur (champs utilisés en l'occurence : num_site + date_mission).

    Pourquoi me direz-vous ne pas choisir cette solution là ? Et bien, car dans ce cas, j'ai un nouveau bug : j'ai des enregistrements qui se créent à chaque fois que je modifie une mission dans un de mes sous-sous-formulaires ... Access ne reconnaît donc pas en l'association de mes deux champs une clé primaire ...

    Une autre idée peut-être ? Merci beaucoup !!

    PS : désolé pour ma prose étalée Bernard ... ;-) J'essaie de faire mon maximum mais comme les problèmes informatiques sont toujours un peu difficiles à expliquer, j'essaie de mettre le max d'infos !

  5. #5
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Peux-tu alléger au max ta base, la compresser puis le mettre dans ton prochain post... cela serait sympa et susceptible de faire avancer les choses...

    A+

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 5
    Points : 3
    Points
    3
    Par défaut BDD Jointe
    Bonjour Bernard,

    Ma BDD est en deux parties : un fichier mdb qui contient les formulaires et les requêtes, et un autre qui contient les tables. Mon fichier principal qui contient les formulaires, après compactage par Access, est malheureusement trop gros même zippé au max (753 Ko) pour être mis en ligne sur ce site. Puis-je te l'adresser sur une boîte email ?

    Merci d'avance !

  7. #7
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Tu cliques sur mon pseudo, (en dessous de la photo dans la colonne de gauche) et tu choisis "Envoyer un message privé à ..."
    Sinon, plus direct : laribaude@hotmail.com

    A+

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Résolu
    Merci Bernard ! En fait, il suffisait de n'utiliser que deux onglets dans mon sous-formulaire et de rajouter des contrôles spécifiques dans ces onglets (on peut rendre les onglets visibles et invisibles comme je le voulais).
    Pas besoin de créer deux sous-sous-formulaires ! Je me compliquais la vie pour pas grand chose !

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

Discussions similaires

  1. [AC-2007] Utilisation d'un sous-formulaire alimenté par une requête
    Par BR4562 dans le forum Access
    Réponses: 13
    Dernier message: 13/03/2014, 19h20
  2. Réponses: 6
    Dernier message: 28/12/2011, 12h00
  3. relation entre deux sous formulaire
    Par marcmarc150 dans le forum IHM
    Réponses: 11
    Dernier message: 04/11/2009, 13h13
  4. Requete SQL entre 2 tables liés par une relation many to many
    Par macmanaman dans le forum Langage SQL
    Réponses: 8
    Dernier message: 06/05/2009, 16h37
  5. le sous formulaire s'affiche une fois sur deux
    Par Math dans le forum Access
    Réponses: 16
    Dernier message: 10/10/2005, 15h25

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