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 :

[Access 2002] Exporter des données vers une base Access 2.0


Sujet :

Access

  1. #21
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 182
    Points : 139
    Points
    139
    Par défaut
    Merci de cette réponse rapide, mais qu'en est-il de la sélection de plusieurs tables de destination dans ma requête Ajout ?

  2. #22
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 004
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 004
    Points : 24 595
    Points
    24 595
    Par défaut
    La source peut provenir de plusieurs tables sources mais l'ajout doit se faire table par table en commençant pas la table mère. Comme toute les requetes action il vaut mieux faire table par table.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #23
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 182
    Points : 139
    Points
    139
    Par défaut
    Merci,

    Petit récapitulatif :

    - Je dois donc créer 3 requêtes qui ajouteront chacune les données de l'une de mes 3 tables Access 2002 vers la table correspondante Access 2.0.
    - Je dois commencer par la table mère.




    Petites précisions :
    Je viens de lire l'un de vos tutoriel, et j'ai retenu quelques termes "techniques", je vais donc réexposer le problème plus précisémment.

    => Je veux exporter 3 tables d'une base Access 2002 vers une base Access 2.0
    - Table1
    - Table2
    - Table3

    => Chacune de ces 3 tables possède une Clé Primaire

    => Table2 possède une Clé Etrangère vers Table1
    => Table3 possède une Clé Etrangère vers Table1
    => Table3 possède une Clé Etrangère vers Table2

    => Ces 3 relations sont de type Un à Plusieurs.
    => Ces 3 relations appliquent l'Intégrité Référentielle

    Voilà, le contexte devrait être plus clair maintenant, j'aurais dû exposer le problème de cette manière dès le début.


    Ensuite,

    => Si je résonne bien, je dois éxécuter mes requêtes dans cet ordre :
    1°) Table1 => Car table mère de Table2
    2°) Table2 => Car table fille de Table1 et table mère de Table3
    3°) Table3 => Car table fille de Table1 et Table2

    => Les Requêtes Ajout fonctionnent correctement, mis à part :
    - Les Clés Etrangères ne sont pas mises à jour avec les nouvelles valeurs des Clés Primaires correspondantes.
    - La Requête Ajout de Table1 ne fonctionne pas, j'obtiens des erreus de Violations de clé, hors je ne vois pas la différence qu'il peut y avoir entre Table1 et mes deux autres tables (Table2 et Table3).



    Encore merci.


    Edit le 30 Mai à 14H15 :
    Finallement, la Requête Ajout de Table1 fonctionne...
    En fait, je restait concentré sur ces 3 liaisons, et je n'avais pas fait attention aux autres liaisons qui n'entrent pas en jeu dans ce problème lorsque des données correctes sont enregistrées (Comme je fais pleins de tests, je rentre des données à la va-vite et j'ai oublié certaines contraintes)

    Mais le problème des Clés Etrangères reste complet.

  4. #24
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 182
    Points : 139
    Points
    139
    Par défaut
    Bonjour,


    Je pense avoir trouvé comment contourner le problème des clés étrangères. Voici la procédure que j'ai mis en place :

    1) On exporte tout les enregistrements de Table1
    2) On met à jour toutes les clés étrangères de Table2 en récupérant les nouvelles clés primaires de Table1
    3) On exporte tout les enregistrements de Table2
    4) On met à jour toutes les clés étrangères de Table3 en récupérant les nouvelles clés primaires de Table1 et de Table2
    5) On exporte tout les enregistrements de Table3
    6) On supprime tout les enregistrements de Table1
    7) On supprime tout les enregistrements de Table2
    8) On supprime tout les enregistrements de Table3

    - Pour les exportations (étapes 1, 3 et 5), pas de soucis normalement.
    - Pour les mises à jour (étapes 2 et 4), problème.
    - Pour les suppressions (étapes 6, 7 et 8), pas de soucis normalement.


    => Mises à jour :
    Pour celà, j'utilise la requète suivante : (juste pour l'étape 2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    UPDATE TABLE2
    SET CLE1 = (SELECT CLE1
                FROM TABLE1 IN 'D:\ACCESS2.MDB'
                WHERE (CHAMP1 = (SELECT CHAMP1
                                 FROM TABLE1
                                 WHERE CLE1 = TABLE2.CLE1)
                AND (CHAMP2 = (SELECT CHAMP2
                               FROM TABLE1
                               WHERE CLE1 = TABLE2.CLE1))));
    Avec CLE1 = Clé primaire de Table1 et clé étrangère de Table2 et de Table3.

    Cette requête se situe donc dans ma base Access 2002.
    Elle va chercher les enregistrements voulus dans la base Access 2.0 pour récupérer les nouvelles clés primaires.

    Le problème est donc le suivant :
    Mon UPDATE tout seul fonctionne correctement.
    Mon (grand) SELECT tout seul fonctionne correctement.

    Mais si je met UPDATE ... = SELECT ..., alors j'obtiens le message d'erreur suivant :
    L'opération doit utiliser une requête qui peut être mise à jour.

    Pourtant les deux parties séparées fonctionnent correctement, j'ai fait plusieurs tests (notamment sur le SELECT !), et je sais que tout fonctionne bien.

    Mais je ne vois vraiment pas pourquoi les deux ensembles ne fonctionnent pas.

    Merci de vos conseils.

  5. #25
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 182
    Points : 139
    Points
    139
    Par défaut
    Bon apparement il n'est pas possible d'utiliser SELECT avec UPDATE.

    Comment puis-je faire donc pour récupérer les nouvelles clés primaires, et les enregistrer à la place de mes clés étrangères ?

    Il faudrait, je pense, stocker quelque part (où ???) la valeur récupérée grâce au SELECT, puis reprendre cette valeur avec le UPDATE.

    Si quelqu'un sait comment faire, ou bien a une autre idée, je suis preneur !

    Merci d'avance.

  6. #26
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 004
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 004
    Points : 24 595
    Points
    24 595
    Par défaut
    Bonjour,

    Je te suggère de procéder pas à pas à partir d'une requête select via le QBE,

    Une fois que celle-ci correspond à ce que tu attends comme résultat (à l'affichage) tu la transforme en requête MAJ (update).

    Je procéde toujours comme ça, jamais en SQL directement. Cela evite les problèmes.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  7. #27
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 182
    Points : 139
    Points
    139
    Par défaut
    Merci, je vais voir ce que je peux faire via le QBE.

  8. #28
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 182
    Points : 139
    Points
    139
    Par défaut
    IMPECCABLE !
    Des requêtes affichage, MAJ, ajoût, quelques jointures, une macro qui m'exécute toutes mes requêtes dans le bon ordre, et maintenant tout fonctionne correctement !

    J'arrive enfin à exporter mes données Access 2002 dans ma base Access 2.0, tout en mettant à jour les clés étrangères !


    Merci à Heureux-oli pour son aide !
    Mais surtout, un GRAND MERCI (et même plusieurs !) à Loufab, sans qui je n'arriverais certainement toujours pas à exporter mes données !


    Petites précisions sur moi : C'est la toute première fois que je travaille sur Access, et je travaille très rarement sur les bases de données, pour la simple et bonne raison que je n'aime pas tellement ça...
    Bon, mon travail est loin d'être fini, il faut encore maintenant que je m'occupe des formulaires, ainsi que de la sécurité, puis pourquoi pas, faire un petit menu pour que ça soit plus sympa ! Mais mon gros problème d'exportation est maintenant règlé ! Si j'ai d'autres soucis, je n'hésiterais pas à vous poser mes questions !


    P.S. : Je suis très heureux de mettre le tag "Résolu" !


    Encore merci !

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [WD10] Importation des données vers une base access
    Par karim.net7 dans le forum WinDev
    Réponses: 0
    Dernier message: 07/06/2011, 12h08
  2. Exporter des données vers une base de données Oracle
    Par sellamelie dans le forum MATLAB
    Réponses: 3
    Dernier message: 26/08/2009, 16h07
  3. Exporter les données d'une base access vers Paradox
    Par MonPc dans le forum Bases de données
    Réponses: 2
    Dernier message: 06/07/2008, 20h35
  4. Exportation des données d'une base Oracle sous forms
    Par moezsokrati dans le forum Forms
    Réponses: 4
    Dernier message: 13/10/2005, 08h55
  5. [Excel] Récupérer des données d'une base Access
    Par FoxDeltaSierra dans le forum Excel
    Réponses: 8
    Dernier message: 03/09/2005, 10h22

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