SUPPRIMER LES DOUBLONS D'UNE TABLE SANS CLÉ

Signaler
Messages postés
1222
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018
-
Messages postés
586
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 février 2010
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/22702-supprimer-les-doublons-d-une-table-sans-cle

Messages postés
586
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 février 2010
1
1/
bein le mieux serait d'ajouter une contrainte d'unicité ou une clé primaire....
d'autant plus que si l'un des champs de ta table est utilisée comme foreign key, ton process ne fonctionnera pas...
de plus, tu utilises un champs de recherche donc ce champs doit être unique d'où la contrainte d'unicité...
2/
le processus que tu mets en place peut être trèèèèèèès long (essaie avec une table avec 1'000'000 d'enregistrements)
3/
c'est pas très 'souple', ta requête et tes champs sont 'hardcodés'.
4/merci quand même ....:)
Messages postés
586
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 février 2010
1
1/
bein le mieux serait d'ajouter une contrainte d'unicité ou une clé primaire....
d'autant plus que si l'un des champs de ta table est utilisée comme foreign key, ton process ne fonctionnera pas...
de plus, tu utilises un champs de recherche donc ce champs doit être unique d'où la contrainte d'unicité...
2/
le processus que tu mets en place peut être trèèèèèèès long (essaie avec une table avec 1'000'000 d'enregistrements)
3/
c'est pas très 'souple', ta requête et tes champs sont 'hardcodés'.
4/merci quand même ....:)
Messages postés
586
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 février 2010
1
1/
bein le mieux serait d'ajouter une contrainte d'unicité ou une clé primaire....
d'autant plus que si l'un des champs de ta table est utilisée comme foreign key, ton process ne fonctionnera pas...
de plus, tu utilises un champs de recherche donc ce champs doit être unique d'où la contrainte d'unicité...
2/
le processus que tu mets en place peut être trèèèèèèès long (essaie avec une table avec 1'000'000 d'enregistrements)
3/
c'est pas très 'souple', ta requête et tes champs sont 'hardcodés'.
4/merci quand même ....:)
Messages postés
1222
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018

Un lien sur elle-même : il faut ajouter deux fois la table dans l'éditeur de requete et faire le joint sur la clé, meme si ce n'est pas une vrai clé : c'est justement le champ à dédoublonner.
Il y a sans doute un moyen de conserver la première occurence et de supprimer les suivantes. Sans utiliser de requete, il y a une astuce qui marche à tout les coups :
DÉDOUBLONNER FACILEMENT UNE TABLE MS ACCESS ET VOIR LA LISTE DES DOUBLONS
www.vbfrance.com/code.aspx?ID=16634
Messages postés
12
Date d'inscription
mercredi 10 décembre 2003
Statut
Membre
Dernière intervention
28 octobre 2006

Il faut se dire que la table n'a pas de clé. Et que qu'il faut supprimer toutes les lignes dédoublées et en garder une.
Avec une requête du genre "DELETE FROM Un_nom_deTable where UnchampDeRecherche='" & ChampDeRecherche & "'", Toutes les lignes ayant la valeur ChampDeRecherche dans la colonne UnChampDeRecherche sont supprimées. Donc l'astuce est de stocker cette valeur dans des variables et d'ajouter les valeurs contenues dans ces variables dans la table après lancement de la requête de suppression.
mais je veux aussi savoir ce que signifie "un lien sur elle-même"?
Messages postés
1222
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018

Je me demande si l'on ne peut pas y arriver en écrivant une simple requête avec un lien sur elle-même, avis aux amateurs !