Comment faire pour que lorsque que je rempli le champs code de ma table 1, il remplisse également le champs code de ma table 2?
merci d'avance
phil
Comment faire pour que lorsque que je rempli le champs code de ma table 1, il remplisse également le champs code de ma table 2?
merci d'avance
phil
Bonjour,
Tu peux être un peu + explicite ?
A priori, tu peux mettre du code sur le formulaire, dans l'évènement Code1_AfterUpdate, pour ajouter un enregistrement dans la table 2 ?
Tu peux aussi t'assurer que toute modif de Code1 est répercutée sur Code2 en appliquant l'intégrité référentielle,
etc., etc. etc.
Mais le mieux sera toujours de nous montrer un cas réel : pas de "code 1", "code 2" mais les vrais noms des tables et des champs et des données que cela recouvre, pour qu'on comprenne de quoi tu parles ?
désolé ma question n'était pas claire d'autant plus que je vous ai induit en erreur car mon champs s'appelle "code" (je ne parle pas du code VBA).
Bref
j'ai deux table "Table a" et "Table b" dans lesquelles il y a un champs en commun qui porte le même nom "Code". J'aimerai que lorsque que je rajoute un enregistrement dans la "Table a" (pour laquelle le champs "code" est une clé primaire) il rajoute automatique un nouvel enregistrement dans la "Table b" avec le même champs "Code".
Dans la structure que j'ai en ce moment les deux table sont liées par le champs code, mais je suis obligé de rajouter un nouvel enregistrement dans les deux tables (je rentre deux fois le même champs "code" alors qu'ils sont liés).
j'espère être plus clair cette fois ci
à plus phil
Salut,
sqi vous avez lié les 2 tables avec ASSISTANT LISTE DE CHOIX je ne voie pas où est le problème.
Bonne chance.
Merci
non car chaque enregistrement a sont propre champs "code" une clé primaire qui est unique pour chaque enregistrement
Salut,
1- je refais toujours la même remarque, pas pour toi, mais pour tout le monde sur le forum : merci d'oublier les "Table a", "Table b", "Code 1" et "Code 2".
C'est tellement + parlant de parler de table de "Contacts" liée à une table "Clients", ou "TableCacahuètes" et "TableBananes".
Non, je rigole, mais merci d'être clair, et autant que possible "parlant". On comprend mieux et on peut répondre beaucoup plus facilement 8)
2- sinon, ton cas est assez clair, sauf que tu n'as pas dit si tu as une liasion "1 à 1" ou "1 à plusieurs" ? Mais ça sera quasi pareil...
- tu as déjà relié les 2 tables, ce qui permet
-- toute modif du Code de la 1ère table sera répercuté sur le(s) Code(s) dépendant(s) de la 2ème,
-- toute suppression d'enregistrement de la 1ère entraînera une suppression du(des) enregistrement(s) dépendant(s) dans la 2ème.
Si tu as activé ces deux fonctions dans la relation ?
Pour l'ajout, il n'y a pas d'autre solution que du code VBA, sur le(s) formulaires permettant d'ajouter des enregistrements à la 1ère Table, dans l'évènement Form_AfterInsert.
Tu sais faire ça ?
Salut,
soit
tableB(codeb,desb)
TableA(codea,desa,dessb)
quand vous créez la tablea sur type de données du champ dessb choisissez assistant liste de choix.
vous aurrez 2 propositions, choisissez à partir d'une table, choisissez la tableB codeb et desb et suivez les étapes.
Bonne chance.
Merci[/u]
Hocine, bonjour,
j'avoue que j'ai du mal à comprendre ce que tu proposes avec cette liste de choix : comment créer un nouvel enregistrement dans la 2ème table ?
philpaul, j'aimerais savoir si la relation entre tes 2 tables est de "1 à 1" ou "1 à plusieurs" (Pour chaque enregistrement 'Table1', tu peux avoir un seul ou plusieurs enregistrements en 'Table2' ?).
Il faudra faire quelques essais de mise au point, mais, si la relation est de 1 à 1, il n'est pas impossible que tu réalises cela sans code.
Il faudra essayer :
- une requête basée sur les 2 tables, avec bien sûr liaison de 'Table1.Code' à 'Table2.Code',
- une valeur par défaut quelconque (même si c'est '0' dans un champ numérique ou un espace dans un champ texte) dans un des champs de la 2ème table, autre que le champ Code.
Cela peut suffire pour créer un enregistrement dans la Table2, dès que tu en crées un en Table1, en utilisant cette requête, ou un formulaire basé sur cette requête.
Sinon, dans la même requête, même sans valeur par défaut, le fait de saisir une valeur quelconque dans un champ de la table 2 devrait créer l'enregistrement avec 'Table2.Code = Table1.Code', à tout moment.
Attention de bien permettre les mises à jour + suppressions en cascade.
SDalut,
ce que j'ai compris qu'il ajoute un enregistrement dan s tableB et il veut le retrouver dans la tableA.
philpaul a dit :
si ce n'est pas la cas alors désolé.Comment faire pour que lorsque que je rempli le champs code de ma table 1, il remplisse également le champs code de ma table 2?
Bonne chance.
Merci.
et avec un sous formulaire ? (champs père et fils sur le code)?
philpaul, t'es là ?
On a besoin des réponses aux questions pour aller + loin.
Si tu fais des essais, bravo, mais fais nous profiter, qu'on continue ensemble...
Niclalex : oui, notamment si la relation est de 1 à 1. Quoique les sous-formulaires sont plutôt faits pour des relations 1 (enreg. dans le form. principal) à plusieurs (dans le sous form.)
Et, quelle que soit la relation, je pense que ça ne créera rien automatiquement. Faudra du code pour déclencher la création d'un enregistrement dans la 2ème table.
Alors que, si les 2 tables sont dans la même requête, je n'ai pas très bien compris pourquoi, mais j'ai eu des cas de création spontanée d'enregistrement dans la 2ème table, ce qui est parfait pour ce cas, mais qui m'ont plutôt ennuyé à l'époque
, et m'ont obligé à supprimer toute valeur par défaut, d'où le conseil plus haut...
Tu as fait des tests ?
Partager