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 :

Possibilité de garder un log de lignes non insérées ? [AC-2003]


Sujet :

Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ergonome
    Inscrit en
    Juin 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ergonome
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2012
    Messages : 23
    Points : 22
    Points
    22
    Par défaut Possibilité de garder un log de lignes non insérées ?
    Je m'explique

    - j'importe un fichier excel dans une table T_SEGMENT_FINAL qui est liée à 5 autres tables.
    - Ma table T_SEGMENT_FINAL contient uniquement des FK des autres tables.
    - Exemple d'une FK dans cette table : FK_Pays

    Le contexte est posé ... voilà où j'ai un "problème" :

    - Si dans le fichier excel que j'importe, il y a un pays qui n'existe pas encore dans ma table T_PAYS, ma requête ne pourra pas trouver l'ID qui lui correspond.
    - La ligne en questions n'est pas insérée, et aucune information m'est retournée concernant les lignes non-insérées.

    ...

    Je n'ai pas envie de l'insérer automatiquement !
    Par contre, j'aimerais que access me crée un log de chaque ligne non insérée à cause d'informations qui n'existent pas encore (comme dans mon exemple du pays)

    Auriez-vous une idée de comment faire ça ?

  2. #2
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour à toi aussi Defigueiredoh,

    Je te suggère de créer, via l'assistant graphique, des "requêtes de non-correspondance" qui te listeront les lignes Excel (table liée) sans correspondance avec les tables concernées.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ergonome
    Inscrit en
    Juin 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ergonome
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2012
    Messages : 23
    Points : 22
    Points
    22
    Par défaut
    Salut Richard,

    Merci beaucoup pour ta réponse.
    Mais je ne vois pas comment faire appel à ce genre de requêtes automatiquement lors d'un import ET uniquement si une ligne n'est pas passée ...

    encore merci

  4. #4
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Dans un premier temps, il faut créer, dans Access, une table liée qui pointera sur ton fichier Excel.

    Ensuite, créer, via l'assistant graphique, des "requêtes de non-correspondance" qui listeront les lignes de ton fichier Excel lié dont des cellules devraient exister mais n'existent pas dans les tables concernées.

    Enfin, tu peux créer une macro qui déroule toutes ces opérations.

    Mais, avant, il faut les faire tourner une à une.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  5. #5
    Membre à l'essai
    Homme Profil pro
    Ergonome
    Inscrit en
    Juin 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ergonome
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2012
    Messages : 23
    Points : 22
    Points
    22
    Par défaut
    Tip top !
    Merci beaucoup, je vais tester ça cet après-midi ...

    Mon fichier excel n'est pas lié, mais déjà importé dans une structure de données.
    Et la table que je veux tester, ne contient que des ID des autres tables liées.

    L'import, se fait VIA une table temporaire ou le fichier excel a été importé.

    dis moi si je me trompe mais mes étapes seraient :

    1. créer une requête avec jointures qui va afficher ma table avec les vrais valeurs et non les Foreign Keys
    2. créer une requête ne non correspondance qui se base sur le résultat de ma requête et qui va la comparer aux lignes présentes dans ma table temporaire (contenu du fichier excel importé)

    ....

    si j'ai bien compris, je devrais ensuite avoir une liste des éléments non importées. juste ?

    avec un peu de VBA, je pourrai afficher le résultat de la requête de non-correspondance UNIQUEMENT si le contenu de la requête est de minimum 1 ligne ...

    .... juste ?

  6. #6
    Membre à l'essai
    Homme Profil pro
    Ergonome
    Inscrit en
    Juin 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ergonome
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2012
    Messages : 23
    Points : 22
    Points
    22
    Par défaut
    Je n'arrive malheureusement pas à faire une requête qui m'affiche la différence entre les 2 tables ...

  7. #7
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Citation Envoyé par Defigueiredoh
    j'importe un fichier excel dans une table T_SEGMENT_FINAL qui est liée à 5 autres tables.
    ==> T_SEGMENT_FINAL est donc la table comportant le fichier Excel importé. Tes 5 autres tables sont les suivantes :
    • T_Pays ;
    • T_2 ;
    • T_3 ;
    • T_4 ;
    • T_5.

    Il te suffit de créer, via l'assistant, les requêtes de non-correspondance suivantes :
    • T_SEGMENT_FINAL => T_Pays, via FK_Pays : liste des pays de T_SEGMENT_FINAL non existants dans T_Pays ;
    • T_SEGMENT_FINAL => T_2, via FK_2 : liste des FK_2 de T_SEGMENT_FINAL non existants dans T_2 ;
    • T_SEGMENT_FINAL => T_3, via FK_3 : liste des FK_3 de T_SEGMENT_FINAL non existants dans T_3 ;
    • T_SEGMENT_FINAL => T_2, via FK_4 : liste des FK_4 de T_SEGMENT_FINAL non existants dans T_4 ;
    • T_SEGMENT_FINAL => T_3, via FK_5 : liste des FK_5 de T_SEGMENT_FINAL non existants dans T_5.

    Commences par la première, les autres couleront de source.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  8. #8
    Membre à l'essai
    Homme Profil pro
    Ergonome
    Inscrit en
    Juin 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ergonome
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2012
    Messages : 23
    Points : 22
    Points
    22
    Par défaut
    Voilà ! j'ai réussi à construire la requête !

    1. une requête d'affichage
    2. une requête comparant cette requête à ma table temporaire

    LEFT JOIN à partir de ma table temporaire, sur les résultats de ma requête !

    glisser tous les éléments de la table temporaire vers le bas, ne pas les afficher et mettre un "Est Null" sur le criètère de chacun de ces 5 champs !

    Merci beaucoup pour ton aide .... je vais maintenant essayer de construire un petit code autour de ces résultats !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Insert ligne non inséré dans base
    Par bobosh dans le forum C#
    Réponses: 4
    Dernier message: 18/01/2010, 14h40
  2. Réponses: 2
    Dernier message: 07/11/2006, 11h08
  3. [VBA-E]derniere ligne non vide
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 28/07/2006, 10h48
  4. retour a la ligne non voulu dans mes tableaux ????
    Par cedre22 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 01/03/2006, 15h48
  5. Lecture de fichier - dernière ligne non prise en compte
    Par JulienPles dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 16/03/2005, 11h57

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