Forum Clubic

Doublon sous ms-access

Bonjour,

J’ai un probleme tout simple mais emmerdant. J’ai des doublons sous ACCESS.

En faisant des requettes simple, Access me cree des doublons. Je voudrais par la suite les supprimer, c’est a dire garder toutes les entrees mais pas leur doublons.

Ex:

F1 A B
F1 A B
F2 C D

Je veux avoir :

F1 A B
F2 C D

C’est tout con, mais ca me pourri la vie…

pour le moment j’ai ecris :

Not In (SELECT [X] FROM [Y] As Tmp GROUP BY [X] HAVING Count(*)>1 )

(ou : Y est le nom de la table, et X la variante ou apparait des doublons, ici A et C…)

Le probleme avec ma “requette” c est qu il me donne comme resultat:

F2 C D

Il supprime carement les lignes avec doublon…

Quelqu un a une idee ?

Merci
Edité le 10/03/2008 à 20:39

Tu fais une requête de sélection, dans laquelle tu utilises l’opération regroupement.
Et tu recopies le résultat dans une nouvelle table. Elle sera identique à la source, à ceci près que les doublons auront disparu

Je comprend pas…

Ma requete : Not In (SELECT [X] FROM [Y] As Tmp GROUP BY [X] HAVING Count(*)>1 ) est deja une requete de regroupement non ?

Le probleme c est que ca regroupe les doublon entre eux, alros que moi je veux supprimer seulement les doublons.

Je sais pas si je suis clair ?

Si tu utilises l’assistant de requêtes d’acces, il va te donner la possibilité de ne retenir que le premier élément du regroupement.
Ensuite, si tu préfères la syntaxe sql, il te suffira de changer le mode d’affichage et de copier le code

Je suis pas sure que tu comprennes mon probleme.

Le probleme c’est que la requete (que se soit avec l’assistant ou en affichage SQL) ne marche pas :stuck_out_tongue:

Enfin elle marche, mais elle ne fait pas ce que je veux.

ok j’ai trouve la soluce,

Comme je me doutais elle etait super simple… J’essayai d’utiliser un tank pour ecraser une fourmis…

Suffit d’utiliser la commande DISTINCT…

Ex (en mode SQL):

Select DISTINCT DISPO
FROM DISPO

Ou dispo est la table//collone contenant les doublons…

Merci quand meme Gcc :stuck_out_tongue:

Pour ne garder qu’un seul élément, il suffit du groupby

Pour l’exemple donné dans ton premier message, la traduction en access SQL donne :
SELECT Y.X
FROM Y
GROUP BY Y.X;

Par contre, il faut qu’ils soient triés si tu veux qu’ils ne sortent qu’une fois quelque soit l’ordre d’origine
SELECT Y.X
FROM Y
GROUP BY Y.X
ORDER BY Y.X;