1. #1
    Nouveau membre du Club
    Homme Profil pro
    Apprenti Ingénieur Généraliste
    Inscrit en
    février 2017
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Apprenti Ingénieur Généraliste
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : février 2017
    Messages : 35
    Points : 30
    Points
    30

    Par défaut Importation de doublons (clef primaire)

    Bonjour,

    Situation actuelle : j'importe depuis un fichier excel des enregistrements dans des tables.

    Problème : le fichier excel comporte plusieurs fois le même enregistrement or l'un des champs est une clef primaire (non-négociable), donc lorsque j'importe les données j'obtiens un problème de doublon.

    Comment faire comprendre à Access/Excel que la donnée à importer existe déjà dans la table et qu'il ne faut donc pas lancer la procédure d'importation une seconde fois?



    Merci d'avance si vous avez déjà rencontré ce problème.

  2. #2
    Membre éprouvé Avatar de vttman
    Homme Profil pro
    Quinqua ... Poli, ve/aillant de l'Informatique
    Inscrit en
    décembre 2002
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Quinqua ... Poli, ve/aillant de l'Informatique

    Informations forums :
    Inscription : décembre 2002
    Messages : 607
    Points : 1 095
    Points
    1 095

    Par défaut

    Question (bête) : Pourquoi ne pas importer le fichier Excel dans une table temporaire, faire
    le ménage dans cette table (suppression (ou repérage) des doublons etc.) puis à partir de cette table
    passer les requêtes de MAJ pour toutes les tables et enfin RAZ de la table temporaire en fin de traitement ?
    Je suis sympa comme tout Mosellan mais ...
    ... (m')aider ou (me) mettre sur la voie c'est une chose
    ... tout (me) faire de A à Z, c'est pas ma conception du rôle d'un forum X ou Y
    Si vous n'êtes pas satisfait de mes réponses, n'hésitez pas à me le faire savoir Merci !

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Apprenti Ingénieur Généraliste
    Inscrit en
    février 2017
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Apprenti Ingénieur Généraliste
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : février 2017
    Messages : 35
    Points : 30
    Points
    30

    Par défaut

    Bonjour,

    Merci pour votre réponse/question (qui est loin d'être bête), je ne suis pas familier avec ce type de procédure (table temporaire, repérage/suppression des doublons, etc...) donc votre solution ne m'est pas venu à l'esprit.

    Le repérage des doublons et la MAJ des enregistrements se font-ils automatiquement ou manuellement ?
    Via un module Access ou depuis le fichier Excel ?
    Avez-vous un exemple de code?

  4. #4
    Membre éprouvé Avatar de vttman
    Homme Profil pro
    Quinqua ... Poli, ve/aillant de l'Informatique
    Inscrit en
    décembre 2002
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Quinqua ... Poli, ve/aillant de l'Informatique

    Informations forums :
    Inscription : décembre 2002
    Messages : 607
    Points : 1 095
    Points
    1 095

    Par défaut

    Je n'ai pas d'exemple sous le coude mais si vous savez importer un fichier Excel
    et alimenter des tables ... vous saurez je pense créer un nouvelle table MATABLE_TEMP, modifier
    la procédure d'importation pour alimenter MATABLE_TEMP et ensuite modifier vos requêtes pour "attaquer "
    vos tables cible avec MATABLE_TEMP !?

    Sinon donnez plus de détails, comment l'importation est elle faite ?, les requêtes qui passent ensuite etc.
    Dans tous les cas vous augmenterez vos chances d'avoir plus de réponses (de moi et autres forumeurs)
    avec plus d'éléments de votre part ... enfin je pense
    Je suis sympa comme tout Mosellan mais ...
    ... (m')aider ou (me) mettre sur la voie c'est une chose
    ... tout (me) faire de A à Z, c'est pas ma conception du rôle d'un forum X ou Y
    Si vous n'êtes pas satisfait de mes réponses, n'hésitez pas à me le faire savoir Merci !

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Apprenti Ingénieur Généraliste
    Inscrit en
    février 2017
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Apprenti Ingénieur Généraliste
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : février 2017
    Messages : 35
    Points : 30
    Points
    30

    Par défaut

    Citation Envoyé par vttman Voir le message
    ensuite modifier vos requêtes pour "attaquer "
    vos tables cible avec MATABLE_TEMP !?
    Comme vous l'aurez deviné et d'aprés les 3 questions posées précédemment, c'est cette partie qui me bloque et non pas l'importation dans une table temporaire.


    Citation Envoyé par vttman Voir le message
    Sinon donnez plus de détails, comment l'importation est elle faite ?, les requêtes qui passent ensuite etc.
    Dans tous les cas vous augmenterez vos chances d'avoir plus de réponses (de moi et autres forumeurs)
    avec plus d'éléments de votre part ... enfin je pense
    L'importation s'effectue via un recordset qui vient ouvrir une table dans ma BDD et attribuer la valeur d'une cellule du fichier excel à un champ, rien de plus. (aucune requête additionnelle)

  6. #6
    Membre éprouvé Avatar de vttman
    Homme Profil pro
    Quinqua ... Poli, ve/aillant de l'Informatique
    Inscrit en
    décembre 2002
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Quinqua ... Poli, ve/aillant de l'Informatique

    Informations forums :
    Inscription : décembre 2002
    Messages : 607
    Points : 1 095
    Points
    1 095

    Par défaut

    Pouvez vous donner le code en question ?
    Dans votre cas, quand vous insérez dans la table, normalement 2 façons de faire :
    1) Insertion directe (même pas peur) puis traitement des erreurs notamment l'erreur "enregistrement déjà existant" qu'il faut repérer (code d'erreur SQL à cibler)
    2) Avant Insertion : Vérification si enregistrement déjà existant et selon la réponse alors insertion ou passage ligne suivante ...

    https://access.developpez.com/faq/?page=SQL
    Je suis sympa comme tout Mosellan mais ...
    ... (m')aider ou (me) mettre sur la voie c'est une chose
    ... tout (me) faire de A à Z, c'est pas ma conception du rôle d'un forum X ou Y
    Si vous n'êtes pas satisfait de mes réponses, n'hésitez pas à me le faire savoir Merci !

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/08/2014, 08h04
  2. [AC-97] Requête qui retire les doublons en fonctions de 3 clefs primaires.
    Par Jazz_ dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 13/10/2010, 10h26
  3. Problème recup clef Primaire doublons
    Par nathieb dans le forum SQL
    Réponses: 4
    Dernier message: 13/09/2007, 15h55
  4. Gestion des erreurs (doublon clef primaire)
    Par capitaine dans le forum Access
    Réponses: 3
    Dernier message: 19/06/2006, 12h22
  5. Clef primaire access, Indexé avec doublon
    Par Asurmena dans le forum Access
    Réponses: 1
    Dernier message: 05/06/2006, 11h04

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