recherche des doublons

Le
Jose Muller
bonjour,
Ma base de données a la structure suivante :
index ( clé primaire )
NumDossier
Nom


Il y a plus de 3000 enregistrements , mais avec des doublons dans NumDossie=
r.

Je n'arrive pas à modifier la structure de la base pour mettre 'NumDossi=
er' en mode 'pas de doublons'.

Comment dans un premier stade, afficher via une requête les enregistreme=
nts qui posent problème ?

merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
db
Le #26207402
Le 20/06/2014 08:47, Jose Muller a écrit :
bonjour,
Ma base de données a la structure suivante :
index ( clé primaire )
NumDossier
Nom
...

Il y a plus de 3000 enregistrements , mais avec des doublons dans NumDossier.

Je n'arrive pas à modifier la structure de la base pour mettre 'NumDossier' en mode 'pas de doublons'.

Comment dans un premier stade, afficher via une requête les enregistrements qui posent problème ?

merci






Quelque chose comme :

Select Index,NumDossier, Nom
From table
where NumDossier in (
select NumDossier
from table
group by NumDossier
having count(NumDossier)>1)

db
Jose Muller
Le #26207772
Le vendredi 20 juin 2014 09:08:09 UTC+2, db a écrit :
Le 20/06/2014 08:47, Jose Muller a �crit :

> bonjour,

> Ma base de donn�es a la structure suivante :

> index ( cl� primaire )

> NumDossier

> Nom

> ...

>

> Il y a plus de 3000 enregistrements , mais avec des doublons dans NumDo ssier.

>

> Je n'arrive pas � modifier la structure de la base pour mettre 'NumDossier' en mode 'pas de doublons'.

>

> Comment dans un premier stade, afficher via une requ�te les en registrements qui posent probl�me ?

>

> merci

>

>

>



Quelque chose comme :



Select Index,NumDossier, Nom

From table

where NumDossier in (

select NumDossier

from table

group by NumDossier

having count(NumDossier)>1)



db



merci , voici mon essai

SQL_Text = "INSERT INTO FICHIERTMP " _
& "SELECT Index , [NUMERO DE DOSSIER] , [NOM DU CHEF] " _
& "FROM [FICHIER SOCIAL] " _
& "WHERE [NUMERO DE DOSSIER] in ( " _
& "SELECT [NUMERO DE DOSSIER] " _
& "FROM [FICHIER SOCIAL] " _
& "GROUP BY [NUMERO DE DOSSIER] " _
& "HAVING count([NUMERO DE DOSSIER])<>1) ;"
'

DoCmd.RunSQL SQL_Text


mais j ai le message suivant :
Reference circulaire causée par l'alias "NUMERO DE DOSSIER" dans la li ste SELECT de la définition de la requête.


1- FICHIERTMP et FICHIER SOCIAL ont la même structure.
2- INSERT INTO m'est demandé sinon pas d'action .
db
Le #26207762
Le 20/06/2014 12:30, Jose Muller a écrit :
Le vendredi 20 juin 2014 09:08:09 UTC+2, db a écrit :
Le 20/06/2014 08:47, Jose Muller a �crit :

bonjour,



Ma base de donn�es a la structure suivante :



index ( cl� primaire )



NumDossier



Nom



...







Il y a plus de 3000 enregistrements , mais avec des doublons dans NumDossier.







Je n'arrive pas � modifier la structure de la base pour mettre 'NumDossier' en mode 'pas de doublons'.







Comment dans un premier stade, afficher via une requ�te les enregistrements qui posent probl�me ?







merci

















Quelque chose comme :



Select Index,NumDossier, Nom

From table

where NumDossier in (

select NumDossier

from table

group by NumDossier

having count(NumDossier)>1)



db



merci , voici mon essai

SQL_Text = "INSERT INTO FICHIERTMP " _
& "SELECT Index , [NUMERO DE DOSSIER] , [NOM DU CHEF] " _
& "FROM [FICHIER SOCIAL] " _
& "WHERE [NUMERO DE DOSSIER] in ( " _
& "SELECT [NUMERO DE DOSSIER] " _
& "FROM [FICHIER SOCIAL] " _
& "GROUP BY [NUMERO DE DOSSIER] " _
& "HAVING count([NUMERO DE DOSSIER])<>1) ;"
'

DoCmd.RunSQL SQL_Text


mais j ai le message suivant :
Reference circulaire causée par l'alias "NUMERO DE DOSSIER" dans la liste SELECT de la définition de la requête.


1- FICHIERTMP et FICHIER SOCIAL ont la même structure.
2- INSERT INTO m'est demandé sinon pas d'action .





Bizarre. Essayez :

SQL_Text = "INSERT INTO FICHIERTMP " _
& "SELECT t1.Index , t1.[NUMERO DE DOSSIER] , t1.[NOM DU CHEF] " _
& "FROM [FICHIER SOCIAL] as t1 " _
& "WHERE t1.[NUMERO DE DOSSIER] in ( " _
& "SELECT t2.[NUMERO DE DOSSIER] " _
& "FROM [FICHIER SOCIAL] as t2" _
& "GROUP BY t2.[NUMERO DE DOSSIER] " _
& "HAVING count(t2.[NUMERO DE DOSSIER])<>1) ;"

Si ça n'est pas mieux, essayez la requête SQL en dehors d'un module. Si
elle fonctionne, faites un copier/coller du résultat dans la table
FICHIERTMP.

db
Jose Muller
Le #26207932
Le vendredi 20 juin 2014 08:47:32 UTC+2, Jose Muller a écrit :
bonjour,

Ma base de données a la structure suivante :

index ( clé primaire )

NumDossier

Nom

...



Il y a plus de 3000 enregistrements , mais avec des doublons dans NumDoss ier.



Je n'arrive pas à modifier la structure de la base pour mettre 'NumDos sier' en mode 'pas de doublons'.



Comment dans un premier stade, afficher via une requête les enregistre ments qui posent problème ?



merci



------------------

ceci fonctionne et le resultat dans FICHIERTMP me semble correcte.

Merci



SQL_Text = "INSERT INTO FICHIERTMP " _
& "SELECT [FICHIER SOCIAL].Index , [FICHIER SOCIAL].[NUMERO DE DOSSIER] , [FICHIER SOCIAL].[NOM DU CHEF] " _
& "FROM [FICHIER SOCIAL] " _
& "WHERE [FICHIER SOCIAL].[NUMERO DE DOSSIER] in ( " _
& "SELECT [FICHIER SOCIAL].[NUMERO DE DOSSIER] " _
& "FROM [FICHIER SOCIAL] " _
& "GROUP BY [FICHIER SOCIAL].[NUMERO DE DOSSIER] " _
& "HAVING count([FICHIER SOCIAL].[NUMERO DE DOSSIER])<>1) ;"
db
Le #26208052
Le 20/06/2014 14:10, Jose Muller a écrit :


------------------

ceci fonctionne et le resultat dans FICHIERTMP me semble correcte.




Merci du retour.

db
Pascal
Le #26210642
Bonjour,
Généralement la démarche pour se 'débarrasser' des doublons est de créer une table similaire à l'originale avec, en clé primaire (sans d oublon), le champs posant problème (en l'occurrence 'NumDossier', si j'ai bien compris).
Ce que je ne sais pas : est-ce que, dans les cas de doublons, les autres ch amps sont aussi égaux ?
Pascal
Le vendredi 20 juin 2014 08:47:32 UTC+2, Jose Muller a écrit :
bonjour,

Ma base de données a la structure suivante :

index ( clé primaire )

NumDossier

Nom

...



Il y a plus de 3000 enregistrements , mais avec des doublons dans NumDoss ier.



Je n'arrive pas à modifier la structure de la base pour mettre 'NumDos sier' en mode 'pas de doublons'.



Comment dans un premier stade, afficher via une requête les enregistre ments qui posent problème ?



merci
Pascal
Le #26210742
Bonjour,
Généralement la démarche pour se 'débarrasser' des doublons est de créer une table similaire à l'originale avec, en clé primaire (sans d oublon), le champs posant problème (en l'occurrence 'NumDossier', si j'ai bien compris). Il ne reste plus qu'à coller la première table dans la seconde, les doublons seront alors éliminés.
Ce que je ne sais pas : est-ce que, dans les cas de doublons, les autres ch amps sont aussi égaux ?
Pascal
Le vendredi 20 juin 2014 08:47:32 UTC+2, Jose Muller a écrit :
bonjour,

Ma base de données a la structure suivante :

index ( clé primaire )

NumDossier

Nom

...



Il y a plus de 3000 enregistrements , mais avec des doublons dans NumDoss ier.



Je n'arrive pas à modifier la structure de la base pour mettre 'NumDos sier' en mode 'pas de doublons'.



Comment dans un premier stade, afficher via une requête les enregistre ments qui posent problème ?



merci
Gloops
Le #26211322
Pascal a écrit, le 22/06/2014 10:29 :
Bonjour,
Généralement la démarche pour se 'débarrasser' des doublons est de créer une table similaire à l'originale avec, en clé primaire ( sans doublon), le champs posant problème (en l'occurrence 'NumDossier', si j'ai bien compris).
Ce que je ne sais pas : est-ce que, dans les cas de doublons, les autre s champs sont aussi égaux ?
Pascal




Bonjour,

Dans la question d'origine j'ai lu ceci :

Je n'arrive pas à modifier la structure de la base pour mettre 'NumD ossier' en mode 'pas de doublons'.



En effet la règle d'intégrité "sans doublons" va empêcher de copi er les
enregistrements d'origine dans la nouvelle table, et ça va bloquer à
chaque doublon. D'où la question : comment faire pour les situer ?

José a dit avant-hier à cette heure-ci qu'avec les indications de db il
a réussi. Maintenant, grâce aux renseignements obtenus il va pouvoir
supprimer les enregistrements voulus, et ensuite mettre la clef primaire.=
Jose Muller
Le #26221362
Le dimanche 22 juin 2014 10:30:59 UTC+2, Pascal a écrit :
Bonjour,

Généralement la démarche pour se 'débarrasser' des doublons est d e créer une table similaire à l'originale avec, en clé primaire (sans doublon), le champs posant problème (en l'occurrence 'NumDossier', si j' ai bien compris). Il ne reste plus qu'à coller la première table dans l a seconde, les doublons seront alors éliminés.

Ce que je ne sais pas : est-ce que, dans les cas de doublons, les autres champs sont aussi égaux ?

Pascal

Le vendredi 20 juin 2014 08:47:32 UTC+2, Jose Muller a écrit :

> bonjour,

>

> Ma base de données a la structure suivante :

>

> index ( clé primaire )

>

> NumDossier

>

> Nom

>

> ...

>

>

>

> Il y a plus de 3000 enregistrements , mais avec des doublons dans NumDo ssier.

>

>

>

> Je n'arrive pas à modifier la structure de la base pour mettre 'NumD ossier' en mode 'pas de doublons'.

>

>

>

> Comment dans un premier stade, afficher via une requête les enregist rements qui posent problème ?

>

>

>

> merci



OK , mais cela elimine un des deux enregistrements doublons ,
Dans mon cas , je devais trouver les doublons , choisir lequel ne change pa s et modifier l'autre enregistrement ( cad lui trouver un autre numéro de dossier )

la routine que j'ai postée donne le résultat que je cherchais. Merci à tous.
Publicité
Poster une réponse
Anonyme