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 :

Formulaire d'ajout de données vers plusieurs tables [AC-2003]


Sujet :

IHM

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2013
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 18
    Points : 8
    Points
    8
    Par défaut Formulaire d'ajout de données vers plusieurs tables
    Bonjour,

    Dans ma base de données, une première table rassemble l'entièreté du personnel. Chaque personne ne peut y être reprise qu'une seule et unique fois: je leur ai donc attribué un numéro d'ID automatique et unique.

    Dans une seconde table, je recense des données relatives à ces personnes. À nouveau, chaque personne ne peut avoir qu'une seule et unique "entrée". Cet ID est, dans ce cas-ci, numérique puisque je voudrais le récupérer de la première table, où il aurait été créé automatiquement.

    Dans ma troisième table, je dois pouvoir attribuer plusieurs "entrées" à chaque personne. Il doit donc pouvoir y avoir plusieurs entrées pour une même ID (une même personne doit pouvoir avoir plusieurs implémentations, plusieurs diplômes, plusieurs formations...) Je pourrais bien entendu organiser les choses différemment au besoin.

    Mon formulaire doit permettre d'entrer toutes ces données. Mes deux problèmes principaux sont les suivants:

    1) Comment faire pour que mon formulaire enregistre automatiquement les informations dans les tables 2 et 3 en utilisant l'ID créé dans la table 1?

    Autrement dit: j'enregistre Monsieur X dans le formulaire, une entrée 937 va directement être créée dans ma table 1. Il faudrait que le reste des données (c'est partiellement lié à mon 2e problème, j'y viens), soit aussi recensé sous l'ID 937... puisqu'il faut bien que toutes ces données soient liées.

    2) Pour les données qui doivent être enregistrer dans les tables 2 et 3: dois-je automatiquement passer par un sous-formulaire? En gardant le même formulaire mais en tentant de mettre les box en lien avec d'autres tables, Access me permet de "voir" mes listes déroulantes mais pas de sélectionner des contenus...


    J'espère que mes problèmes sont clairement décrits et qu'une bonne âme pourra m'éclairer :-). Il est peut-être possible de faire tout ça plus "simplement" en organisant différemment mes tables (ce serait alors plutôt une question de modélisation) mais je vois vraiment pas comment... Dans tous les cas, si vous avez une idée... n'hésitez pas!

    D'avance, merci!

  2. #2
    Expert éminent

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

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

    Qu'est ce qui te gène dans l'utilisation de sous-formulaire ? C'est la méthode préconisée dans ce genre de structure.
    Deux sous-formulaires liés par le champ Pères Id et les champs fils Id en clé externe. L'Id des sous-formulaires externes vont apparaitre automatiquement lors d'ajout de nouvelles valeurs dans les sous-formulaires.

    Bonne continuation

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2013
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    Merci pour cette réponse :-)

    Lorsque j'avais tenté l'ajout d'un sous-formulaire, ma bdd toute entière était devenue presque inutilisable. J'avais de tels lags qu'il m'a même été difficile d'aller supprimer le sous-formulaire lorsque j'ai réalisé que c'était lui (étrangement) le responsable. J'avais sans doute fait une bêtise en le rajoutant et je voulais être sûr que c'était la bonne direction avant de me refrotter à lui :-) Si c'est bien la "bonne" façon de faire, je vais retenter!

  4. #4
    Futur Membre du Club
    Inscrit en
    Novembre 2013
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    Effectivement! ça fonctionne maintenant parfaitement à l'exception d'un petit point:

    Mon deuxième sous-formulaire est lié à la table 3. Dans celle-ci, j'aimerais pouvoir ajouter plusieurs entrées, plusieurs infos.

    Exemple:

    J'ajoute une personne à la bdd, j'ai donc une nouvelle entrée en tables 1 et 2. Je lui attribue ensuite 3 formations. Je veux que dans la table 3 (formations), 3 nouvelles entrées soient ajoutées. En recourant à 3 sous-formulaires visant tous la table 3, si je crée une nouvelle entrée, ça fonctionne. Cependant, lorsque je modifie une entrée existante... ça ne fonctionne pas. Elles s'alignent toutes sur l'entrée existante.

    Une idée?

  5. #5
    Expert éminent

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

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Re-,

    Là, il faudrait copie de la base parce qu'on parle de détails et j'ai du mal à visualiser ton problème.
    Normalement si ta table 1 est liée à la table 3 par une relation 1 à plusieurs, tu peux ajouter autant de formations que tu veux pour chaque personne.

    Peux-tu mettre sur le forum une copie nettoyée de ta base avec le formulaire et les sous-formulaires et les tables concernées.

    @+

  6. #6
    Futur Membre du Club
    Inscrit en
    Novembre 2013
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    Ah, je me disais justement que ce n'était pas des plus clairs :-) J'ai édité en même temps; ça fonctionne partiellement...

    J'ai donc dans mon formulaire global trois sous-formulaires qui redirigent les infos au même endroit. En les remplissant, je crée différentes entrées.

    Si par contre je récupère une ancienne entrée, les trois sous-formulaires vont me récupérer la seule entrée existante, forcément. Il faudrait sans doute que j'ordonne aux sous-formulaires de s'affiche vides SI leurs données sont déjà reprises par le sous-formulaire précédent...

    C'est un peu plus clair? Sinon je viderai effectivement la table et la mettrai ici :-)

  7. #7
    Expert éminent

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

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Il y a un hic, pourquoi tu as 3 sous-formulaires??

    Normalement, tu as ton formulaire principal basé sur ta table 1.

    2 sous-formulaires :
    - 1 basé sur la table 2 qui te permet d'ajouter les données de la table 2.
    - 1 deuxième basé sur la table 3 où tu peux ajouter autant de formations par personne.

    Donc j'ai pas compris le 3ème formulaire!?!

    @+

  8. #8
    Futur Membre du Club
    Inscrit en
    Novembre 2013
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    C'est probablement là que ça coince aussi...

    Formulaire principal: ok
    Sous-formulaire vers table 2: ok

    Actuellement j'ai, en plus,

    Un sous-formulaire vers la table 3;
    un sous-formulaireBIS vers la table 3;
    et un sous-formulaireTER vers la table 3.

    Ainsi, quand j'entre un nouvelle personne, ils me créent trois entrées différentes... Le hic c'est que si je consulte mes données déjà existantes, mes trois sous-formulaires vont tous me chercher la même entrée :-) (évidemment, et je comprends pourquoi... mais je n'ai pas encore trouvé le moyen de les en empêcher!)

    J'ai selon moi deux possibilités

    1) soit forcer le formulaire BIS à prendre la 2e entrée correspondant à l'ID qui lie mes tables (si il existe une 2e entrée... sinon blanc) et le formulaire TER à prendre la 3e entrée correspondant à l'ID (idem).

    2) soit trouver une autre façon de faire ... Il y a très probablement moyen de faire ça plus efficacement.

    Mon but est donc bien d'avoir la possibilité de rajouter jusqu'à 3 entrées dans ma table 3.

    Lors de l'ajout d'une personne, je dois pouvoir les ajouter toutes les trois en même temps.

    Lors de la modification des données, je dois pouvoir "voir" les trois entrées afin de pouvoir en modifier/supprimer l'une ou l'autre voire en rajouter...

    Est-ce compliqué? faisable? ça ne me dérange pas de changer du tout au tout la façon dont c'est actuellement organisé, du moment que j'ai au final la façon la plus efficace (et efficiente!) de faire :-). C'est un peu frustrant, au point de vue "logique" je vois clairement ce que je veux dire à Access de faire... Encore faut-il trouver les mots :-).

    D'avance, je vous remercie pour vos lumières!

  9. #9
    Expert éminent

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

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Bonsoir,

    J'ai pas compris pourquoi tu as 3 sous-formulaires pour la table 3 ? Je t'ai dit qu'il n'en faut qu'un seul.

    Ci-joint une très petite base qui fait ce que tu veux.

    @+

  10. #10
    Futur Membre du Club
    Inscrit en
    Novembre 2013
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    Bonjour!

    J'expliquais ce que j'avais fait à la base, depuis j'ai bien compris qu'il ne fallait qu'un sous sous-formulaire et j'ai changé :-).

    Malheureusement, je n'ai accès qu'à Access 2003 ici, je n'ai donc pas pu consulter le fichier accdb; je le convertirai dès que j'aurai accès à un 2007 et je reviendrai pour donner des nouvelles.

    Merci!

  11. #11
    Futur Membre du Club
    Inscrit en
    Novembre 2013
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    C'est non seulement exactement ce qu'il me fallait... mais en plus c'est très simple, maintenant que j'ai compris!

    Un grand merci pour l'aide apportée

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

Discussions similaires

  1. [AC-2010] Formulaire d'inscription de données dans plusieurs tables
    Par FITech dans le forum Modélisation
    Réponses: 0
    Dernier message: 03/06/2014, 04h06
  2. Réponses: 6
    Dernier message: 08/04/2014, 11h43
  3. Réponses: 4
    Dernier message: 19/08/2011, 14h44
  4. Réponses: 10
    Dernier message: 15/09/2005, 12h31
  5. Réponses: 7
    Dernier message: 12/10/2004, 16h43

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