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 :

Suppresion doublons dans une table (tampon)


Sujet :

Access

  1. #1
    Membre à l'essai Avatar de Merlebleu
    Homme Profil pro
    Ingénieur électronique retraité
    Inscrit en
    Décembre 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électronique retraité
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 22
    Points : 17
    Points
    17
    Par défaut Suppresion doublons dans une table (tampon)
    Bonjour à tous,

    Je dois résoudre un problème en faisant appel à un macro donc difficile à résoudre autrement. La base de données contient plus de 2000 adresses. La version Access est (2007-2013)

    Je m'explique: Le but est de ne pas envoyer des doublons lors de l'expédition de document. Si les deux champs sont remplis cela va créer un double envoi pour la même personne donc si les champs "Fondation" et "CLV" sont remplis, le champ CLV doit rester vide. Si un des deux champ est vide cela reste l'état. Cela sert uniquement pour les envois de lettres, convocations etc etc.

    La pièce jointe représente un Tampon pour le publipostage rempli par une macro depuis un formulaire "commande Impression". Mon souci est de formuler la commande en access basic.

    Si une personne veut m'aider, je lui en serais reconnaissant.

    Cordialement
    Images attachées Images attachées  

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Bonjour,

    Il faut créer une requête et interpréter la règle que tu mets :
    donc si les champs "Fondation" et "CLV" sont remplis, le champ CLV doit rester vide. Si un des deux champ est vide cela reste l'état
    Le champ complémentaire de la requête aura comme expression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Destinataire : IIF(IsNull([Fondation]);[CLV];[Fondation])
    Cordialement.

  3. #3
    Membre à l'essai Avatar de Merlebleu
    Homme Profil pro
    Ingénieur électronique retraité
    Inscrit en
    Décembre 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électronique retraité
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 22
    Points : 17
    Points
    17
    Par défaut Suppression de doublons
    Bonjour,

    Merci pour ta réponse rapide, j'apprécie. Dans ta formule, pourquoi IIF ? Où se trouve le champ complémentaire, dois-je en créer un et où faut-il insérer cette formule ?

    Les ans ont érodé mes neurones


    Cordialement

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Re-bonjour,

    La solution que je propose est d'utiliser une requête avec l'expression :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Nom, Prenom, IIF(IsNull([Fondation]);[CLV];[Fondation]) AS Destinataire FROM Tatable
    en lieu et place de la table.

    Le IIF une fonction qui permet d'interpréter ta règle (je met la condition à l'envers pour simplifier l'expression) :
    donc si les champs "Fondation" et "CLV" sont remplis, le champ CLV doit rester vide. Si un des deux champ est vide cela reste l'état
    IIF IsNull(Fondation) Destinataire = CLV deuxième ; Destinataire = Fondation
    SI la valeur de fondation est nulle la valeur de Destinataire est CLV SINON la valeur de Destinataire est Fondation

    Une recherche de l'aide te permettra de comprendre l'utilisation de IIF. Il faut abuser de la touche :F1:

    Cordialement.

  5. #5
    Membre à l'essai Avatar de Merlebleu
    Homme Profil pro
    Ingénieur électronique retraité
    Inscrit en
    Décembre 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électronique retraité
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 22
    Points : 17
    Points
    17
    Par défaut
    Re Bonjour,

    J'ai mis en place la requête adaptée à mes besoins.

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT (Identifiant, Titre, Nom, Prénom, Rue, Adresse_complément, NPA_Lieux) IIF(IsNull([Statut_fondation]);[Statut];[Statut_fondation]) AS Tampon_Sans_Doublon FROM Membres

    La requête dans le générateur de requêtes (écran)

    Un message d'erreurs (écran) me dit que la sous-requête est incorrecte car il manques parenthèses

    J'ai consulté l'aide F1 sans pouvoir trouver ce qu'il fallait faire

    Je vais lire Maitriser Access afin d'avancer en attendant

    Cordialement
    Images attachées Images attachées   

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Bonjour,

    Petites corrections dans ta requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Identifiant, Titre, Nom, Prénom, Rue, Adresse_complément, NPA_Lieux, IIF(IsNull([Statut_fondation]);[Statut];[Statut_fondation]) AS Tampon_Sans_Doublon FROM Membres
    Cordialement.

  7. #7
    Membre à l'essai Avatar de Merlebleu
    Homme Profil pro
    Ingénieur électronique retraité
    Inscrit en
    Décembre 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électronique retraité
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 22
    Points : 17
    Points
    17
    Par défaut Suppression de doublons
    Bonjour,

    Merci pour cette réponse, malheureusement il se passe toujours le même effet (2 écrans). Quel générateur choisir pour entrer la requête dans "événement" "Expression" ou de "Code"

    J'aimerais également ajouter l'effacement de la table tampon avant afin que les données ne s'accumulent pas. J'ai trouvé le SQL de la requête suppression du "Tampon Sans Doublons"
    DELETE [Tampon_ Sans_Doublon].*
    FROM [Tampon_ Sans_Doublon];

    Mais où la placer ?

    Cordialement
    Images attachées Images attachées    

Discussions similaires

  1. supprimer les doublons dans une table
    Par mavean dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 26/06/2019, 13h26
  2. [pl-sql] Recherche de doublons dans une table
    Par tommey dans le forum Oracle
    Réponses: 1
    Dernier message: 08/11/2006, 22h53
  3. Suppression de doublons dans une table partionnée
    Par ludmillaj dans le forum Oracle
    Réponses: 10
    Dernier message: 27/12/2005, 14h34
  4. Eliminer des Doublon dans une Table
    Par Soulama dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 03/02/2005, 14h27
  5. [access]doublons dans une table en access !
    Par hackerandco dans le forum Bases de données
    Réponses: 6
    Dernier message: 14/06/2004, 14h45

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