Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

recherche des doublons

9 réponses
Avatar
Jose Muller
bonjour,
Ma base de donn=E9es a la structure suivante :
index ( cl=E9 primaire )
NumDossier=20
Nom
...

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

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

Comment dans un premier stade, afficher via une requ=EAte les enregistreme=
nts qui posent probl=E8me ?

merci

9 réponses

Avatar
db
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
Avatar
Jose Muller
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 .
Avatar
db
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
Avatar
Jose Muller
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) ;"
Avatar
db
Le 20/06/2014 14:10, Jose Muller a écrit :


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

ceci fonctionne et le resultat dans FICHIERTMP me semble correcte.




Merci du retour.

db
Avatar
Pascal
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
Avatar
Pascal
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
Avatar
Gloops
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.=
Avatar
Jose Muller
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.