[ACCESS/VBA] Remplir une table reliée à une autre automatiquement

Remplir une table reliée à une autre automatiquement [ACCESS/VBA] - VB/VBA/VBS - Programmation

Marsh Posté le 06-09-2011 à 17:07:13    

Bonjour,
 
Je suis en stage et j'ai un problème qui semble assez idiot  :pfff: :
Sachant que j'ai une table répertoriant des cours de formations professionnelle, sur laquelle je ne peux rien modifier. je veux ajouter une table la reliant pour l'enrichir sans toucher à la table Session originale.
Typiquement, cette table, appelée Session comporte:
 
IDSession clé primaire, NumAuto
Nom: Texte, nom de la session (par exemple: Formation ACCESS VBA 212 ( :sol: )
Lien_Participants, Num (pour faire une relation un à plusieurs).
 
Je dois rajouter un champ financement (Numérique) et un OUI/NON de sélection pour d'autre traitement, pour cela je pensai relier la table existante avec
une autre table, nommée Information_Additionnelle en relation Un à Un avec intégrité référentielle. Cette table comprend:
 
IDInfo, numérique, contenu: Select IDSession FROM Session, de sorte que l'IDSession = IDInfo
Selection: OUI/NON
Financement: Numérique  
 
 Mais pour respecter l'intégrité référentielle il faudrait que chaque Session ait une instance d' Information_Additionnelle. et je ne vois pas comment faire
ça automatiquement, (requete mise à jour?) à moins que ma démarche soit mauvaise?  :sweat:  
 
En espérant recueillir vos lumières bénévoles...   :jap:  

Reply

Marsh Posté le 06-09-2011 à 17:07:13   

Reply

Marsh Posté le 06-09-2011 à 22:44:10    

Salut,

 

Je pense que ton idée est correcte et qu'il n'est absolument pas nécessaire que tous les enregistrements de la table Session aient leur correspondance dans la table Info_Add.

 

J'aurais simplement créé 4 champs dans cette nouvelle table :
- IDInfo : clé primaire numéro auto
- IDSession : Clé de la session dans la table Session, à lier effectivement par une relation "un à un" au champ Session.IDSession (ce champ est une clé étrangère)
- Selection
- Financement

 

A+

 


Message édité par neozenfragance le 06-09-2011 à 22:44:49

---------------
Si seulement tu connaissais le pouvoir du côté obscur. Obi-Wan ne t’a jamais dit ce qui est arrivé à ton père.
Reply

Marsh Posté le 07-09-2011 à 14:00:31    

Une requete Ajout, basée sur une requete de non correspondance entre les deux histoire de toujours etre a jour.
 
Tu créés ta seconde table comme tu le décris, sauf que le IDInfo est juste numérique.
Ensuite cette requete :

Citation :

INSERT INTO Information_Additionnelle ( IDInfo )
SELECT Session.IDSession
FROM [Session] LEFT JOIN Information_Additionnelle ON Session.IDSession = Information_Additionnelle.IDInfo
WHERE (((Information_Additionnelle.IDInfo) Is Null));


En gros, ca regarde les differences qui existent entre les deux tables en fonction du IDSession, et s'il y a une occurence qui n'existe pas dans la table Information_Additionnelle elle est ajoutée.
 
Donc derriere tu peux meme faire des requetes pour recuperer toutes les infos en liant IDSession à IDInfo
 


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 08-09-2011 à 13:44:06    

Merci pour de vos apports. :)
J'ai créé la table Information_Additionnel, mais quelque chose me dit que si l'intégrité référentielle ne s'opère pas c'est simplement parce que les tables que je créer ne sont pas dans la même base de données que celles avec lesquelles elles sont reliée?
Le champ ID Session, il s'agira d'en faire un chiffre indexé sans doublon, neozenfragrance)?

Reply

Marsh Posté le 08-09-2011 à 14:52:31    

Euh...  [:clooney2]  
 
Alors la, euh... J'ai rien pigé... [:clooney19]


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 09-09-2011 à 10:26:42    

pas grave :D merci de votre aide!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed