Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Saisie identifiant dans plusieurs tables en même temps

9 réponses
Avatar
Antoine
Bonjour à tous,

J'ai une base avec 4 tables reliées par un même identifiant.
Je construis un formulaire qui va renseigner toutes ces tables en même
temps.

Ma question : comment faire pour ne saisir qu'une fois l'identifiant et
qu'il s'incrive dans mes 4 tables en même temps?

Merci d'avance

Antoine

9 réponses

Avatar
3stone
Salut,

"Antoine"
| J'ai une base avec 4 tables reliées par un même identifiant.
| Je construis un formulaire qui va renseigner toutes ces tables en même
| temps.
|
| Ma question : comment faire pour ne saisir qu'une fois l'identifiant et
| qu'il s'incrive dans mes 4 tables en même temps?



Tu as créé tes relations entre les tables ?


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
Antoine
Salut,

"Antoine"
| J'ai une base avec 4 tables reliées par un même identifiant.
| Je construis un formulaire qui va renseigner toutes ces tables en même
| temps.
|
| Ma question : comment faire pour ne saisir qu'une fois l'identifiant et
| qu'il s'incrive dans mes 4 tables en même temps?



Tu as créé tes relations entre les tables ?


oui


j'ai une table individu avec un identifiant que je souhaiterais 'numero
auto' et trois autres tables qui caractérisent ces individus pour
différents sujet et qui ont ce même champs identifiant. les relations
sont 1,1.

Au niveau conception, c'est pas terrible... il y a mieux?

Mon objectif, c'est de ne pas me préoccuper de cet identifiant et que
les enregistrements de mes tables reste syncro... c'est pour saisir un
questionnaire.

Ce doit être ultra basique mais je cale.

Avatar
3stone
re,

"Antoine"
[...]
| j'ai une table individu avec un identifiant que je souhaiterais 'numero
| auto' et trois autres tables qui caractérisent ces individus pour
| différents sujet et qui ont ce même champs identifiant. les relations
| sont 1,1.
|
| Au niveau conception, c'est pas terrible... il y a mieux?


Lier des tables par une relation 1 à 1 revient à tout mettre dans une même table...
ce qui est très rarement justifié !

Donc, la question est: pourquoi disperser cela dans 5 tables ?


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
Antoine
re,

"Antoine"
[...]
| j'ai une table individu avec un identifiant que je souhaiterais 'numero
| auto' et trois autres tables qui caractérisent ces individus pour
| différents sujet et qui ont ce même champs identifiant. les relations
| sont 1,1.
|
| Au niveau conception, c'est pas terrible... il y a mieux?


Lier des tables par une relation 1 à 1 revient à tout mettre dans une même table...
ce qui est très rarement justifié !

Donc, la question est: pourquoi disperser cela dans 5 tables ?


évidement....


c'est (était) pour éviter d'avoir une table avec 50 champs et pour faire
une table par "thème" du questionnaire.

Mais le principe de construction d'un tel formulaire m'intéresse.

merci pour ces réponses "3stone"

Avatar
3stone
re,

"Antoine"
| > Donc, la question est: pourquoi disperser cela dans 5 tables ?
| >
| >
| évidement....
|
| c'est (était) pour éviter d'avoir une table avec 50 champs et pour faire
| une table par "thème" du questionnaire.


La méthode est de ne jamais baser un formulaire directement sur une table,
mais de toujours passer par une requête dans laquelle tu ne sélectionne
que les champs nécessaires au formulaire.


Remarque:
Il faudrait vérifer la nécessité d'avoir 50 champs dans une table
pour éviter les redondances (doublons).
Sinon, éventuellement créer une table secondaire (relation 1 à n)


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
Antoine
re,

"Antoine"
| > Donc, la question est: pourquoi disperser cela dans 5 tables ?
| >
| >
| évidement....
|
| c'est (était) pour éviter d'avoir une table avec 50 champs et pour faire
| une table par "thème" du questionnaire.


La méthode est de ne jamais baser un formulaire directement sur une table,
mais de toujours passer par une requête dans laquelle tu ne sélectionne
que les champs nécessaires au formulaire.


Remarque:
Il faudrait vérifer la nécessité d'avoir 50 champs dans une table
pour éviter les redondances (doublons).
Sinon, éventuellement créer une table secondaire (relation 1 à n)


d'accord, j'ai pigé l'histoire de la requête.


mon problème est qu'il risque d'y avoir plusieurs milliers de réponses
au questionnaire et que je ne peux pas me servir du nom des personnes
comme champs clé, il y aura forcement des doublons. Donc j'aimerais
utiliser un numéro auto qui se répercute dans toutes mes tables lors de
la saisie
quant aux "50" champs, il s'agit d'un questionnaire avec "50"
questions... alors je suis obligé de les avoir.

Avatar
3stone
"Antoine"
[...]
| > Remarque:
| > Il faudrait vérifer la nécessité d'avoir 50 champs dans une table
| > pour éviter les redondances (doublons).
| > Sinon, éventuellement créer une table secondaire (relation 1 à n)
| >
|
| mon problème est qu'il risque d'y avoir plusieurs milliers de réponses
| au questionnaire et que je ne peux pas me servir du nom des personnes
| comme champs clé, il y aura forcement des doublons. Donc j'aimerais
| utiliser un numéro auto qui se répercute dans toutes mes tables lors de
| la saisie

Surtout ne pas utiliser le nom de personnes comme clé primaire,
ajouter un numauto le fera bien...


| quant aux "50" champs, il s'agit d'un questionnaire avec "50"
| questions... alors je suis obligé de les avoir.


"obligé"... oui... mais certainement pas en tant que champs !!!

Que fera-tu lorsqu'il s'agira d'ajouter 10 questions ??
modifier toute ta base ?


La solution est justement dans une table secondaire "Questions"
avec une clé primaire "NumQuestion"...
et là, tu y colle autant que tu le souhaite, de question ;-)


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
Antoine
"Antoine"
[...]
| > Remarque:
| > Il faudrait vérifer la nécessité d'avoir 50 champs dans une table
| > pour éviter les redondances (doublons).
| > Sinon, éventuellement créer une table secondaire (relation 1 à n)
| >
|
| mon problème est qu'il risque d'y avoir plusieurs milliers de réponses
| au questionnaire et que je ne peux pas me servir du nom des personnes
| comme champs clé, il y aura forcement des doublons. Donc j'aimerais
| utiliser un numéro auto qui se répercute dans toutes mes tables lors de
| la saisie

Surtout ne pas utiliser le nom de personnes comme clé primaire,
ajouter un numauto le fera bien...


| quant aux "50" champs, il s'agit d'un questionnaire avec "50"
| questions... alors je suis obligé de les avoir.


"obligé"... oui... mais certainement pas en tant que champs !!!

Que fera-tu lorsqu'il s'agira d'ajouter 10 questions ??
modifier toute ta base ?


La solution est justement dans une table secondaire "Questions"
avec une clé primaire "NumQuestion"...
et là, tu y colle autant que tu le souhaite, de question ;-)


Ok


si j'ai bien compris :

table "personne" id_pers; nom; prenom; ....

table "question" id_question; texte_question

table "reponse" id_pers; id_question; reponse_question

c'est ça?

mais je n'ai pas résolu mon problème lors de la saisie de nouveaux
enregistrements : comment faire au travers de mon formulaire pour
qu'automatiquement soit saisi dans la table "reponse" le champs
"id_pres". Pour préciser, on va partir d'une base vierge dans laquelle
on saisira en même temps la table "personne" et la table "reponse".

suis je clair?

Avatar
3stone
Salut,

"Antoine"
| si j'ai bien compris :
|
| table "personne" id_pers; nom; prenom; ....
| table "question" id_question; texte_question
| table "reponse" id_pers; id_question; reponse_question
| c'est ça?


par exemple !
tu remarque que de cette façon tu n'as plus de limite du nombre
de question et des réponses qui s'y rapportent...

|
| mais je n'ai pas résolu mon problème lors de la saisie de nouveaux
| enregistrements : comment faire au travers de mon formulaire pour
| qu'automatiquement soit saisi dans la table "reponse" le champs
| "id_pres".


Ce sont les relations qui permettent à Access de le faire pour toi ;-)
Crée ton formulaire et sous-formulaire...
Juste pour test, tu te colle quelques enregistrements :
si les relations sont correctes
(et qui normalement ne sont pas affichés/visibles dans les forms)
cela roule tout seul...


| Pour préciser, on va partir d'une base vierge dans laquelle
| on saisira en même temps la table "personne" et la table "reponse".


en "même temps" est une notion qui n'existe pas en informatique ;-)



--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw