Importer des données d'une table à une autre table

Fermé
EMI1989 - 26 mars 2014 à 12:58
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 - 3 avril 2014 à 23:31
Bonjour,


Je viens vous exposer un gros problème dans ma base de données. Je vais d'abord vous l'expliquer en quelques mots pour que vous puissiez mieux vous faire une idée :

- J'ai une table client dont dépendent le reste des tables par tes liens one-to-one ou one-to-many.
- J'ai créé un formulaire avec pour base ma table client, dans laquelle j'ai ajouté toutes les autres tables sous forme de sous-formulaires. (Je l'ai testé dans tous les sens et les liens fonctionnent parfaitement).
- J'ai importé des données d'un fichier excel dans ma base de données, en vérifiant bien que les noms des champs correspondent et soient mis dans l'ordre.
- Toutes ces données se trouvent dans une table baptisée « champs pour importation ».

Ces données doivent être divisées en plusieurs tables préexistantes (par exemple les trois premières colonnes correspondent aux enregistrements à importer dans la table client, les colonnes 4 à 6 correspondent aux enregistrements à importer dans la table adresse).
Lorsque je veux mettre les données correspondantes dans la table client, je peux le faire sans problème, que ce soit par copier-coller ou requête d'ajout.
Toutefois, lorsque je veux faire la même chose dans les autres tables, cela ne fonctionne pas.
Il y a « violation de la clé » ou on me dit que les enregistrements doivent avoir des enregistrements associés à la table client. Comment puis-je « faire comprendre » à access qu'il s'agit des enregistrements correspondants à ma table principale ? Suis-je condamnée à devoir tout rentrer manuellement ? (il y a plusieurs centaines d'enregistrements !)

Un tout grand merci à qui m'apportera la solution !
A voir également:

5 réponses

Bonjour,
D'abord il faut savoir que l'importation de données est toujours une opération un peu délicate. Pour moi qui le fait régulièrement depuis pas mal d'années et plusieurs fois chaque mois, je trouve plus facile et moins risqué d'importer les données dans une nouvelle table provisoire et ensuite les ajouter à l'aide d'une requête-ajout de cette table provisoire vers la table définitive. Il faut bien sûr définir les noms des colonnes de la feuille Excel de telle sorte qu'ils correspondent aux noms des champs de la table définitives.
Maintenant la question des clés est bien la plus empoisonnante. Il faut se prévoir un champs numérique (auto) dans la table intermédiaire d'importation qui permette qu'on puisse établir un lien entre les tables A et B. Il faut alors procéder en 3 étapes.
1) Importation des Identités dans la table Clients avec le champ numérique de la table intermédiaire
2) Importation des autres données dans la table B, encore avec le champ numérique de la table intermédiare
3) Etablir le lien entre les tables A et B à l'aide du champ numérique importé, et mettre à jour le champ qui servira pour le lien définitif entre les 2 tables A et B.
On peut raccourcir une étape en important directement le champ du lien définitif à partir de la table Clients avec une requête-ajout qui intègre le champ de liaison et le lien au préalable.
Pour le reste il faut bien regarder le type de clé qui empêche d'importer convenablement les données dans la table B, et retravailler les propriétés de la table et celles des différents champs, en particulier celles concernant les indexation.
Bonne suite.
0
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
3 avril 2014 à 23:31
Bonjour Tessel
Peux tu me donnais un coup de main pour la creation d'un N° personnalisé pour une facture composé du N°Auto plusune abreviation de date
Mon probleme c'est que jevoudrai essayé d'avoir ceci: 0001-042014 , 0002-04214
J'ai reussi a faire 1-042014
Comment programmer les 0 devant le N°auto.
Merci de ton aide
0