Import Excel et tables multiples

Signaler
Messages postés
3
Date d'inscription
lundi 3 mai 2021
Statut
Membre
Dernière intervention
4 mai 2021
-
Messages postés
15469
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
4 mai 2021
-
Bonjour à tous,
Je bloque sur un problème et ne sait pas comment le retourner :(
J'ai une base de données avec plusieurs tables : STRUCTURES, CONTACT, RDV

Pour simplifier, une structure peut contenir plusieurs contacts, qui peuvent avoir plusieurs date de rdv de posées... les relations entre les tables se font donc sur les clé primaires des structures et des clients. Jusque là, rien de bien méchant, et je gère.

Je sais importer de nouvelles structures sans problème, mais par contre j'ai un énorme souci pour l'import suivant :

Un fichier Excel sont les colonnes sont :
nom_struct, adresse_struct, cp_struct, nom_contact, tel_contact, date_rdv

Donc si une structure à 2 contacts, il y aura donc 2 lignes avec les mêmes infos dans les 3 premières colonnes, et des infos de contact différents... idem pour les RDV...

J'ai fait un import de ce fichier dans une table TEMP, et souhaitais, par requêtes distribuer les données dans mes différentes tables... mais comment puis-je gérer les clés étrangères dans mes bases CONTACTS et RDV ?
puisque pour savoir à quelle structure un contact appartient, je dois d'abord créer l'enregistrement dans la base STRUCTURE, et c'est la clé primaire de cet enregistrement que je dois utiliser dans un des champs de ma table CONTACT ?

Je sèche... :(

Auriez-vous des pistes, des idées ?

Merci à vous.

3 réponses

Messages postés
12
Date d'inscription
mercredi 28 avril 2021
Statut
Membre
Dernière intervention
4 mai 2021

Bonjour,

a mon avis, il va falloir que tu utilise un peu le VBA pour:
1 - Lire le fichier CSV
2 - Vérifier si la structure existe, et la créer avec les infos du csv si ce n'est pas le cas
3 - importer les données du csv dans les bonnes tables

Il y a peut être une façon plus simple, mais je ne la connais pas...

A+
Messages postés
3
Date d'inscription
lundi 3 mai 2021
Statut
Membre
Dernière intervention
4 mai 2021

Merci pour le retour Skratus ;)

Je pensais bien devoir en passer par là, cela ne me dérange pas trop, mais je ne sais pas comment créer un enregistrement dans une table et récupérer la clé primaire de cet enregistrement créé...

Je vais essayer de regarder de ce côté là.
Messages postés
15469
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
4 mai 2021
846
bonjour,
ceci montre comment créer un enregistrement et en récupérer la clé primaire: https://docs.microsoft.com/fr-ca/office/client-developer/access/desktop-database-reference/recordset-lastmodified-property-dao

rs.AddNew 
rs!FirstName = "Roger" 
rs!LastName = "Harui" 
rs.Update 
     ' Move current record pointer to the most recently 
     ' changed or added record. 
rs.Bookmark = rs.LastModified
nouvellecleprimaire = rs!id
Messages postés
12
Date d'inscription
mercredi 28 avril 2021
Statut
Membre
Dernière intervention
4 mai 2021

Bonjour Kref01,

Voici un lien de téléchargement sur une base access faite rapidement.
https://www.cjoint.com/c/KEeinqTvPui

Jette un oeil du coté du VBA pour voir comment lire un csv (séparateur ;) et insérer les données dans une table. Mon fichier CSV ne se limitait qu'a deux colonnes, que l'on récupère avec le tableau tblign(0) (dans mon csv, ca correspond au nom de la strcuture) et tblign(1) (correspond à l'adresse de la structure)
je compare les données du fichier avec ce qu'il y a dans la table structure grace à la fonction Dlookup (colonne à chercher,nomde la table, filtre à appliquer)

Bon courage