Supression doublon table

Signaler
Messages postés
11
Date d'inscription
lundi 16 février 2004
Statut
Membre
Dernière intervention
13 décembre 2005
-
Messages postés
11
Date d'inscription
lundi 16 février 2004
Statut
Membre
Dernière intervention
13 décembre 2005
-
Salut à tous,

J'ai une table (jusque'ici tout va bien!) de ce type:


Champ1 Champ2 Champ3
097D043017 000100 05/03/05
097D043017 000200 05/03/05
097D043017 000300 06/04/05
082S254531 000101 05/06/05
082S254531 000200 05/06/05
-----


Comme on peut le voir, il ya des doublons et je voudrais les supprimer. Mais je voudrais supprimer les doublons selon le Champ3 (garder la date la plus ancienne), ce qui donnerait:


Resultat dans une autre table:
097D043017 000100 05/03/05
082S254531 000200 05/06/05
------
J'ai un peu de mal à me lancer dans vb, toutes les idées sont les bienvenues.
Voilà, j'éspère que je me suis bien fait comprendre.

Merci d'avance et bon vb,

Jojo

8 réponses

Messages postés
69
Date d'inscription
lundi 3 janvier 2005
Statut
Membre
Dernière intervention
15 septembre 2005

Salut,



Est ce que tu veux les supprimer physiquement (enregistrement
définitivement détruits) ou qu'ils ne s'affichent (requête pour
afficher les résultats sans doublons) ??
Messages postés
1352
Date d'inscription
lundi 27 octobre 2003
Statut
Membre
Dernière intervention
19 novembre 2008
2
Salut,



Juste une idée ;)



- A supposer que ta table s'appelle Table1

- Créer une table temporaire Table2 avec les mêmes champs que Table1 avec comme clé primaire Champ1



Dans le code :



1 étape : Vider Table2 (Delete * From Table2)

2 étape : insert into table2 (champ1,champ2,champ3) select
champ1,champ2,champ3
from Table1 order by Champ3

3 étape : Vider Table1 (Delete * From Table1)

4 étape : insert into table1 (
champ1,champ2,champ3
) select * from Table2



NB: Pour les messages d'erreur de type doublons dans l'étape 2, utilise On Error Resume Next !
Messages postés
11
Date d'inscription
lundi 16 février 2004
Statut
Membre
Dernière intervention
13 décembre 2005

J'aimerais garder tous les enregistrements avec doublons et créer une autre table sans doublons.

En tous cas merci pour ta réponse
Jojo
Messages postés
69
Date d'inscription
lundi 3 janvier 2005
Statut
Membre
Dernière intervention
15 septembre 2005

Dans ce cas là si tu n'as pas besoin de modifier les données, tu crées
une requête (du type Select DISTINCT champ3 from table) et c'est bon.



PS : Si tu ne connais pas trop le SQL : http://www.1keydata.com/sql/sql.html
Messages postés
1352
Date d'inscription
lundi 27 octobre 2003
Statut
Membre
Dernière intervention
19 novembre 2008
2
c'est pas faisable avec distinct vu la dépendance de la requete au champ3 !



Tu n'aura qu'à suivre l'étape 1 et 2 seulement
Messages postés
11
Date d'inscription
lundi 16 février 2004
Statut
Membre
Dernière intervention
13 décembre 2005

Salut et surtout merci pour vos réponses,

Je viens seulement d'essayer les étapes 1 et 2 mais ça ne marche pas, il ne me fait pas le tri sur le champ date, en fait il trie les enregistrements par le champ 1 (clé primaire), voici mon bout de code:
Champ 1= Lordno
Champ3=NtryDt

Merci d'avance si vous avez une idée,

Jojo
_________________________
'Destruction de table qp2
DoCmd.DeleteObject acTable, "qp2"


Set bd1 = CurrentDb
'Création de Table
bd1.Execute "CREATE TABLE [qp2]" _
& "(Lordno TEXT,ItemNo TEXT,Lorditem TEXT,Clas TEXT,Fact TEXT,PARTNo TEXT,NtryDt DATE,WorkTo DATE,WupRel DATE,RevNo TEXT,OS TEXT,Hold TEXT,ProdFam TEXT,SizeFam INTEGER,Epmc TEXT);"
' Clé primaire
bd1.Execute "CREATE UNIQUE INDEX Lordno ON qp2 (Lordno)WITH PRIMARY "

'Remplissage table Qp2
m = "INSERT INTO QP2 (Lordno,ItemNo,Lorditem,NtryDt) SELECT Lordno,ItemNo,Lorditem,NtryDt FROM FASTD09A_copy ORDER BY Ntrydt"


bd1.Execute (m)
______________________________
Messages postés
1352
Date d'inscription
lundi 27 octobre 2003
Statut
Membre
Dernière intervention
19 novembre 2008
2
Essai

Order by NtryDt,Lordno,ItemNo,Lorditem

Sinon

par ordre décroissant:

Order by NtryDt,Lordno,ItemNo,Lorditem DESC
Messages postés
11
Date d'inscription
lundi 16 février 2004
Statut
Membre
Dernière intervention
13 décembre 2005

Merci mais ca ne marche toujours pas, il fait toujours le tri sur Le champ1.

Avez vous une autre idée.
Merci d'avance.
Jojo