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 :

Suppression de doublons dans une Table selon plusieurs critères


Sujet :

Access

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 150
    Points : 63
    Points
    63
    Par défaut Suppression de doublons dans une Table selon plusieurs critères
    Bonjour j'ai une table Access dans laquelle je souhaite supprimer des doublons du champ NUM_TUER mais selon plusieurs critères venant du champ PORC


    CRITERE N° 1 je garde systématiquement PORCS = PJ3


    CRITERE N° 2 : si pas de PJ3 (PJ1 ou PJ2) je garde PJ2

    Nom : Capture.PNG
Affichages : 436
Taille : 21,0 Ko

    merci de votre aide

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    J'essairai cela :

    1. faire une requete (reqEstDouble) qui determine si ton enregistrement est en double (EstDouble: DCount("[NUM_TER]"; "TaTable"; "[NUM_TER]=" & [TaTable].[NUM_TER]) > 1).
    2. Apres je ferai une requete (reqPJ3_PJ1) qui determine si ces doubles sont des PJ3 (EstPJ3: [ReqEstDouble].[PORC]="PJ3") ou des PJ1 sans PJ3 (EstPJ1: Dcount("[NUM_TER]"; "ReqEstDouble"; "[NUM_TER]=" & [ReqEstDouble].[NUM_TER] & " and [PORC]=""PJ3""")=0).
    3. Enfin tu fais une requete de suppression basee sur reqPJ3_PJ1 qui supprime tous les enregistrements qui ont EstPJ3=False ou EstPJ1=false.


    Je pense que cela va repondre a ton besoin.

    Aussi on aurait sans doute pu tout faire en une seule requete mais passer par 3 me parait plus facile car on peut valider les resultats intermediaires.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 150
    Points : 63
    Points
    63
    Par défaut
    Bonjour et merci pour ta réponse. Je teste ca demain matin et je te tient au courant si j'obtient le résultat escompté.

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 150
    Points : 63
    Points
    63
    Par défaut
    Bonjour, lorsque je crée un module pour insérer le code de la requête, j'obtient une erreur de compilation, voici une capture :

    Nom : Capture.PNG
Affichages : 432
Taille : 13,8 Ko

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Il n'y aucune function a creer.

    Ce sont des champs calcules dans les requettes concernees. Desole de la confusion.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 150
    Points : 63
    Points
    63
    Par défaut
    Merci de cet éclairage mais je ne vois pas très bien comment faire. Peux-tu m'envoyer une capture d'écran d'où insérer ces codes ?

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Non helas je peux pas mais je vais detailler etape par etape.

    1. Tu crees une nouvelle requete.
    2. Tu selectionnes ta table.
    3. Tu selectionnes * dans la liste des champs et tu la glisses dans les colonnes (* signifie : tous les champs)
    4. Tu te mets dans une colonne vide a cote de l'etoile et tu crees le champs calcule :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      EstDouble: DCount("[NUM_TER]"; "TaTable"; "[NUM_TER]=" & [TaTable].[NUM_TER]) > 1
      • EstDouble est le nom du champs calcule.
      • : signale a Access que le nom est termine.
      • Le reste est le calcul.
        Access va traduire DCount en francais.
        TaTable est a remplacer par le nom que tu as choisi pour ta table.



    Tu repetes l'operation pour la seconde requete.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  8. #8
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 150
    Points : 63
    Points
    63
    Par défaut
    Merci pour cette aide. J'ai crée la requête EstDouble sans problème.
    Voici une capture de la requête EstPj3_Pj1 et de requête de suppression. Le problème est que cette dernière ma demande de supprimer 1178 lignes, soit la totalité de la table! J'ai du faire quelque chose de travers.

    Nom : RqePJ3_PJ1.PNG
Affichages : 385
Taille : 5,8 Ko


    Nom : Capture1.PNG
Affichages : 398
Taille : 20,5 Ko

  9. #9
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    J'ai peut-etre commis une erreur aussi dans mes formules.

    Avant d'en faire une requete de suppression, fais-en une reqete de selection et regarde les resultats.
    Valide les champs calcules. Est-ce que les resultats sont justes ? C-a-d que les enregistrements sont bien identifie comme des doubles, comme des PJ3, des PJ1.
    Apres tu as juste a changer le type pour suppression.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/02/2014, 09h23
  2. [WD15] suppression de doublons dans une table
    Par Yolak dans le forum WinDev
    Réponses: 4
    Dernier message: 02/05/2010, 20h55
  3. Réponses: 2
    Dernier message: 07/10/2009, 17h01
  4. Suppression doublon dans une table
    Par sat83 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 18/09/2008, 11h37
  5. Suppression de doublons dans une table partionnée
    Par ludmillaj dans le forum Oracle
    Réponses: 10
    Dernier message: 27/12/2005, 14h34

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