Relations avec doublons

Fermé
arnef Messages postés 6 Date d'inscription mercredi 6 février 2013 Statut Membre Dernière intervention 6 février 2013 - 6 févr. 2013 à 11:20
Bruce Willix Messages postés 11968 Date d'inscription mardi 24 mai 2011 Statut Contributeur Dernière intervention 12 juin 2018 - 7 févr. 2013 à 10:45
Bonjour,

Je cherche à fusionner 2 bases de données. Leur seul point commun est le code postal, je voudrais que le fichier 1 soit entier et que toutes les données du fichier 2 correspondant au même code postal soient affichées. Le problème, que ce soit dans le fichier 1 ou 2, c'est qu'il y a des doublons de codes postaux. j'ai cherché sur internet et j'ai vu qu'il fallait au moins un fichier sur 2 en clé primaire, ou au moins sans doublons.
Avez-vous une solution à me proposer ou un moyen de fusionner ces bases de donnée avec un autre logiciel ?

En vous remerciant d'avance.


9 réponses

pimprenelle27 Messages postés 20857 Date d'inscription lundi 10 décembre 2007 Statut Contributeur sécurité Dernière intervention 8 octobre 2019 2 502
6 févr. 2013 à 11:29
Bonjour,


il faut que le code postal sur les deux fichier soit en clé primaire avec option accepter les doublons.
0
Bruce Willix Messages postés 11968 Date d'inscription mardi 24 mai 2011 Statut Contributeur Dernière intervention 12 juin 2018 2 588
6 févr. 2013 à 16:46
Pas bon ^^ Pas de doublons sur les clés :D C'est une bête option que Microsoft a mis là !
0
arnef Messages postés 6 Date d'inscription mercredi 6 février 2013 Statut Membre Dernière intervention 6 février 2013
6 févr. 2013 à 11:43
Bonjour,

Merci de votre réponse rapide. Je ne savais pas qu'il était possible de créer une clé primaire avec doublons; J'ai tout de même essayé mais quand je séléctionne cette option là alors que j'ai déjà défini la clé, il me dit que c'est impossible et qu'il faut que je supprime la clé primaire. Je tente de nouveau de cocher "doublons autorisés" et ensuite je passe en clé primaire, mais là il bascule automatiquement en doublons non autorisés...
0
pimprenelle27 Messages postés 20857 Date d'inscription lundi 10 décembre 2007 Statut Contributeur sécurité Dernière intervention 8 octobre 2019 2 502
6 févr. 2013 à 11:55
C'est parce qu'il doit y avoir d'autres clé primaire à mettre afin de pouvoir mettre code postal en doublon.


J'ai déjà fait cela, sur access 2007 pour 2 association où dans une table il y plusieurs clé primaire.
0
Bruce Willix Messages postés 11968 Date d'inscription mardi 24 mai 2011 Statut Contributeur Dernière intervention 12 juin 2018 2 588
6 févr. 2013 à 16:47
Etonnant: la clé primaire est par définition unique. a mon avis, tu utilisais une clé complexe constituée de deux champs.
0
Bonsoir,
Est-ce que vous n'êtes pas en train de confondre "Index" avec "CléPrimaire"; Parce que, comme le dit BruceW. une "CléPrimaire" avec doublons parait une contradiction dans les termes.
De même, plusieurs clés dans la même table ont de quoi en stupéfier plus d'un.
Cordialement.
0
pimprenelle27 Messages postés 20857 Date d'inscription lundi 10 décembre 2007 Statut Contributeur sécurité Dernière intervention 8 octobre 2019 2 502
6 févr. 2013 à 12:29
c'est à dire que vous devez avoir deux index différents sur les deux, alors qu'il faudrait le même index pour les deux.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
arnef Messages postés 6 Date d'inscription mercredi 6 février 2013 Statut Membre Dernière intervention 6 février 2013
6 févr. 2013 à 13:29
C'est exactement ca. Donc pas de solution ?
0
blux Messages postés 26297 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 septembre 2024 3 300
Modifié par blux le 6/02/2013 à 13:45
Salut,

la première question est de savoir ce qu'on fait des données qui sont en double.
Doivent-elles atterrir dans une colonne spécifique de la table de réception, doit-on les abandonner.

Un peu plus d'éclaircissements sur la structure des deux bases actuelles et sur la structure cible serait bienvenu.

Il y a forcément une solution.

A+ blux
 "Les cons, ça ose tout. 
C'est même à ça qu'on les reconnait"
0
arnef Messages postés 6 Date d'inscription mercredi 6 février 2013 Statut Membre Dernière intervention 6 février 2013
6 févr. 2013 à 13:51
En fait, dans le premier fichier, toutes les données sont gardés, tous les codes postaux, même doublés sont classés par ordre croissant. Dans le deuxième fichier, il y a des nom d'agence correspondants à des codes postaux. J'aimerai que pour chaque code postal du fichier 1, tous les noms d'agence du fichier 2 correspondant à ce même code postal apparaissent.
Est-ce possible ?
0
Bruce Willix Messages postés 11968 Date d'inscription mardi 24 mai 2011 Statut Contributeur Dernière intervention 12 juin 2018 2 588
7 févr. 2013 à 10:45
OUI c'est possible, mais tu dois nous dire précisément comment sont structurées tes données... car tu mélanges les termes! Alors c'est peut être clair dans ta tête, mais nous quand on te lit, ça ne l'est pas.

Un fichier : c'est un document d'une application: un tableur excel, une base de données access, un document word.

Une base de données c'est un ensemble de tables. Dans Access une base = un fichier access

Une table est un ensemble de champs, chaque ligne de la table est appelée "enregistrement", chaque colonne "champs". Il peut y avoir plusieurs tables dans une base.

Basiquement tu dois créer une requête comprenant les deux tables et y inclure tous les champs en faisant le join sur les champs de CP respectifs des deux tables.
0
arnef Messages postés 6 Date d'inscription mercredi 6 février 2013 Statut Membre Dernière intervention 6 février 2013
6 févr. 2013 à 13:54
Fichier 1:
Code magasin / adresse / Code postal / Ville

Fichier 2:
Nom d'agence / adresse / Code postal / Ville
0
blux Messages postés 26297 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 septembre 2024 3 300
6 févr. 2013 à 13:57
J'aimerai que pour chaque code postal du fichier 1, tous les noms d'agence du fichier 2 correspondant à ce même code postal apparaissent.
A partir du moment où tu souhaites conserver des doublons dans fichier1, on ne peut pas savoir à quel code postal on va rattacher un enregistrement de fichier2.

Si tu veux faire un lien entre les deux 'fichiers', alors il te faut une clé primaire unique.
0
Bruce Willix Messages postés 11968 Date d'inscription mardi 24 mai 2011 Statut Contributeur Dernière intervention 12 juin 2018 2 588
6 févr. 2013 à 16:48
Il lui faut surtout une requête. Pas la peine de modifier ses tables.

Reste plus qu'à comprendre ce que doit contenir le fichier de sortie afin d'expliquer comment on fait le query ^^
0
blux Messages postés 26297 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 septembre 2024 3 300
6 févr. 2013 à 16:54
Oui, mais on veut fusionner deux bases... (d'ailleurs je me demande si ce n'est pas plutôt fusionner deux tables....)
0
Bruce Willix Messages postés 11968 Date d'inscription mardi 24 mai 2011 Statut Contributeur Dernière intervention 12 juin 2018 2 588
6 févr. 2013 à 17:59
Deux bases avec une table chacune, deux tables,... c'est kif kif. En SQL tu n'as finalement que des tables et des requêtes (voire même que des requêtes quand tu prends le SQL au pied de la lettre), la base étant une simple juxtaposition de tables.

Et pour moi fusionner deux tables = faire un inner/outer left/inner right join selon ce qu'on veut avoir (doublons ? pas de doublons ? etc...)

Le SQL, c'est cool paske c'est simple!

Mais je suis d'accord avec toi: un brin d'explications additionnelles ne pourrait pas faire de tort ^^
0
blux Messages postés 26297 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 septembre 2024 3 300
6 févr. 2013 à 18:03
Oui, mais ici, c'est de l'access, donc références éventuelles à des bases externes...
0
arnef Messages postés 6 Date d'inscription mercredi 6 février 2013 Statut Membre Dernière intervention 6 février 2013
6 févr. 2013 à 12:21
Les clés primaires ont maintenant les doublons autorisés mais je ne peux toujours pas les lier avec l'intégrité référentielle, il me dit toujours qu'il me faut un index unique.
-1
Bruce Willix Messages postés 11968 Date d'inscription mardi 24 mai 2011 Statut Contributeur Dernière intervention 12 juin 2018 2 588
7 févr. 2013 à 10:09
Je pense qu'il faut recadrer le débat. Voici la définition d'une clé primaire: une clé primaire est une contrainte d'unicité qui permet d'identifier de manière unique un enregistrement dans une table. Si on utilise qu'un seul champ, comme ici, ça implique forcément qu'on ne peut pas faire de doublons... et forcément aussi que tu ne peux pas établir d'intégrité référentielle forte, puisque tu ne peux pas lier deux enregistrements de façon univoque.

Il est possible de créer des clés primaires avec plusiseurs champs, mais c'est très déconseillé.
0
blux Messages postés 26297 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 septembre 2024 3 300
Modifié par blux le 7/02/2013 à 10:15
Je viens de faire un test (j'avais quand même un gros doute) : access n'accepte pas les doublons dans les clés primaires (il créé un index dessus, ce qui est normal, mais n'autorise pas cet index à doublonner).
Et c'est heureux !
0