IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Recherche doublons entre tables


Sujet :

Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Retraité
    Inscrit en
    Juillet 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2008
    Messages : 66
    Par défaut Recherche doublons entre tables
    Bonjour,
    J'ai 2 tables: A (table Access avec une vingtaine de champs) et une seconde B (issue de l'importation de fichiers Xls)
    Les 2 tables ont des champs identiques.

    Je voudrais comparer les 2 tables afin de rechercher les enregistrements identique entre A et B.
    La comparaison doit se faire sur tous les champs.
    S'il en existent, les supprimer de B avant de transférer les enregistrements restant dans A, puis vider B afin de la remplir de nouveau par un autre fichier Xls.
    L'importation et le vidage de B, je sais faire.
    Merci.

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 598
    Billets dans le blog
    67
    Par défaut
    Bonjour,

    Partant de 2 tables Table1 <Champ1, Champ2, Champ3> et Table2 <Champ1, Champ2, Champ3>.

    Pour supprimer les enregistrements de Table2 présents dans Table1 :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DELETE
    FROM Table2
    WHERE Exists (select * from Table1 where (Table2.Champ1=[Table1].[Champ1]) AND (Table2.Champ2=[Table1].[Champ2]) AND (Table2.Champ3=[Table1].[Champ3]));

    Pour ajouter les enregistrements restant de Table2 dans Table1 :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO Table1 ( Champ1, Champ2, Champ3 )
    SELECT Table2.Champ1, Table2.Champ2, Table2.Champ3
    FROM Table2;

    Cdlt
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  3. #3
    Membre confirmé
    Profil pro
    Retraité
    Inscrit en
    Juillet 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2008
    Messages : 66
    Par défaut Recherche doublons entre tables
    Merci pour la réponse,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DELETE
    FROM Table2
    WHERE Exists (select * from Table1 where (Table2.Champ1=[Table1].[Champ1]) AND (Table2.Champ2=[Table1].[Champ2]) AND (Table2.Champ3=[Table1].[Champ3]));
    mais ne fonctionne pas = erreur sur DELETE (sub ou fonction non définie).
    J'ai écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CurrentDb.Execute "Delete"
        FROM "table 2" _
         & " WHERE Exists (select * from [table 2] " _
         & " where (table 2.X=[table 1].[X])" _
    etc... pour nommer tous les champs.
    Même erreur sur le FROM
    Est-ce une erreur de syntaxe.
    Merci

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 598
    Billets dans le blog
    67
    Par défaut
    Bonjour,

    Ce n'est pas tout à fait ce que j'ai écris.

    Essayez ceci pour 3 champs X, Y, Z issus de 2 tables (Table 1 et Table 2):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Dim strSQL As String
     
        strSQL = "DELETE " & _
                  "FROM [table 2] " & _
                  "WHERE Exists (select * from  [table 1] where ([table 2].X=[table 1].X) and ([table 2].Y=[table 1].Y) and ([table 2].Z=[table 1].Z))"
     
        CurrentDb.Execute strSQL, dbFailOnError

    Ou encore :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Dim strSQL As String
     
        strSQL = "DELETE " & _
                  "FROM [table 2] " & _
                  "WHERE Exists (select * from  [table 1] where ([table 2].champ1=[table 1].champ1) and ([table 2].champ2=[table 1].champ2) and ([table 2].champ3=[table 1].champ3))"
     
        CurrentDb.Execute strSQL, dbFailOnError
    Cdlt
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  5. #5
    Membre confirmé
    Profil pro
    Retraité
    Inscrit en
    Juillet 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2008
    Messages : 66
    Par défaut Recherche doublons entre tables
    Merci pour cette réponse,
    Mais quelle syntaxe utiliser pour scinder sur plusieurs ligne la condition WHERE, de façon à mettre sur des lignes différentes les "AND"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE Exists (select * from  [table 1] where ([table 2].X=[table 1].X) and ([table 2].Y=[table 1].Y) and ([table 2].Z=[table 1].Z))"
    Test: exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    WHERE Exists (select * from  [table 1] where ([table 2].X=[table 1].X) 
     and ([table 2].Y=[table 1].Y)
     and ([table 2].Z=[table 1].Z))"
    car avec une vingtaine de champs, il sera plus facile de vérifier les champs.
    Merci.

  6. #6
    Expert confirmé Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 287
    Par défaut
    Salut
    Si cela peut vous aider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    strSQL = "DELETE" _
                & " FROM [table 2]" _
                & " WHERE EXISTS (SELECT * FROM [table 1]" _
                & " WHERE ([table 2].champ1=[table 1].champ1)" _
                & " AND ([table 2].champ2=[table 1].champ2)" _
                & " AND ([table 2].champ3=[table 1].champ3))"

Discussions similaires

  1. [AC-2003] Eviter les doublons entre deux tables
    Par soleil_levant dans le forum Modélisation
    Réponses: 1
    Dernier message: 23/06/2009, 17h29
  2. Recherche doublons entre 2 champs
    Par zenzolarticho dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 24/07/2007, 09h52
  3. rechercher et éliminer doublons dans table
    Par patbeautifulday1 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 16/05/2007, 10h27
  4. [Oracle 8i]Recherche doublon sur une même table
    Par fmoriet dans le forum Oracle
    Réponses: 3
    Dernier message: 01/08/2006, 10h09
  5. [Oracle] Recherche de doublons entre 2 tables
    Par Isa31 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 16/02/2006, 14h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo