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

VBA Access Discussion :

Exporter les données d'une base en XML, et les importer dans une autre base [Toutes versions]


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 116
    Points : 52
    Points
    52
    Par défaut Exporter les données d'une base en XML, et les importer dans une autre base
    Bonjour,

    Je cherche une solution pour transférer le contenu d'une base Access vers une autre base Access, en passant par un fichier texte (.txt).
    On peut supposer que la base de destination a la même structure (DDL) que la base d'origine.
    L'opération se ferait en 3 temps:
    1. l'export de la base d'origine dans un fichier txt, sous format XML
    2. le transfert du fichier txt
    3. l'import du fichier txt dans la base de destination

    Je pense qu'il doit exister de nombreuses solutions exporter une base Access en XML, et l'importer depuis de l'XML, alors j'éviterai de réinventer la roue.
    Vos avis et suggestions seront les bienvenus. Merci d'avance.

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    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 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Bonjour,

    En effet tu as 2 commandes Application.ExportXML et ImportXml

    https://learn.microsoft.com/fr-fr/of...tion.exportxml

    https://learn.microsoft.com/fr-fr/of...tion.importxml

    Elles ont quelques limites mais ça fonctionne.

    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. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 116
    Points : 52
    Points
    52
    Par défaut
    Merci Loufab.
    Je vais aller voir et tester ça.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 116
    Points : 52
    Points
    52
    Par défaut
    Entretemps, j'apprends que le menu dans Access:
    External data > More > XML file
    génère dans un fichier XML (txt) les données de la table.
    Apparemment c'est peu connu.

    Alors je reformule ma question:
    comment faire pour exporter les données de ma database,
    en prenant les tables une par une et
    en utilisant la fonctionnalité, comme le fait le menu ?

    Avis, contributions ? On fait progresser la communauté.

    Bien sûr, en attendant, la solution proposée par Loufab reste d'actualité. Elle rejoint peut-être d'ailleurs celle-ci.

  5. #5
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    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 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Bonjour,

    En effet c'est totalement d'actualité. A noter cependant qu'il y aura 1 xml par table.

    Faire une boucle sur la collection des tables

    https://warin.developpez.com/access/...ie_3#L3-3-2-10

    Lancer la commande d'Export à chaque occurrence.

    https://learn.microsoft.com/fr-fr/of...tion.exportxml

    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

  6. #6
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 420
    Points : 2 179
    Points
    2 179
    Par défaut
    Bonjour,
    Est-ce-que ça a quelques choses à voir avec ce poste ?
    https://www.developpez.net/forums/d2...r-base-access/

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 116
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par loufab Voir le message
    Bonjour,

    En effet tu as 2 commandes Application.ExportXML et ImportXml

    https://learn.microsoft.com/fr-fr/of...tion.exportxml

    https://learn.microsoft.com/fr-fr/of...tion.importxml

    Elles ont quelques limites mais ça fonctionne.

    Cordialement,
    Oui, ça fonctionne.
    Bon à savoir: il est possible de mettre plusieurs tables dans le fichier XML.
    Peut également générer le schéma dans un fichier XSD.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 116
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par Thumb down Voir le message
    Bonjour,
    Est-ce-que ça a quelques choses à voir avec ce poste ?
    https://www.developpez.net/forums/d2...r-base-access/
    C'est complémentaire: le post auquel tu fais référence visait l'export/import via fichier txt des métadonnées d'une database, pour les cas d'utilisation qui est décrit.
    Ca c'est possible en utlisant un modèle objet (ex. DAO) pour l'export et également pour l'import, pas en SQL puisque Access ne supporte pas les requêtes DDL (ex. create table ...).

    Ici, c'est au départ pour l'export/import via fichier txt du contenu de la database. J'ai découvert avec l'aide de loufab qu'il y a des fonctionnalités toutes prêtes pour le faire via xml, et en plus, pour les métadonnées également (via xsd). Cela ouvre une très bonne alternative.

  9. #9
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour,
    il faudrait faire une petite correction sur ceci:
    Citation Envoyé par voxov
    Ca c'est possible en utlisant un modèle objet (ex. DAO) pour l'export et également pour l'import, pas en SQL puisque Access ne supporte pas les requêtes DDL (ex. create table ...).
    Access sait exécuter les requêtes création, modification de table... certes, pas via QBE (interface de création) mais en mode SQL, c'est possible:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE tmpTable3
    (
         [ID] counter   primary key,
        [ChpTexte] TEXT(255),
        [Chplg] INTEGER,
        [ChpDate] DATETIME,
    	   [ChpDouble] FLOAT,
        [ChpOuiNon] BIT
    );
    sait modifier le type des colonnes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter table tmpTable3 alter column chplg Long;
    et créer les contraintes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE _tbl_ecriture ADD CONSTRAINT [PK_NO_ENREG] PRIMARY KEY([NO_ENREG])
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 116
    Points : 52
    Points
    52
    Par défaut
    C'est exact. Merci de le faire remarquer.

    J'avais lu quelque part que Access ne supportait pas les requêtes DDL en SQL, donc je n'y ai pas consacré plus de temps. Comme quoi ...

    Mais ça marche, et au moins de 2 manières:
    - dans l'interface de création de requête, mais il faut écrire la requête en SQL
    - dans du code VBA: mettre la requête en SQL dans un string et le passer dans un DoCmd.RunSQL

    Le contexte, c'était de faire le reverse engineering d'une base Access, dans un fichier TXT.
    Pour le reverse, il y a aussi la solution de l'export XML/XSD (voir les autres posts).
    Mais l'avantage de générer le DDL de la database en SQL, c'est que le résultat peut servir de script pour recréer la même database dans un SGBD (PostgreSQL, SQL Server, Oracle, ...) avec quelques petites adaptations. On lance le scrip dans la console SQL, c'est direct. Intéressant quand on fait un prototype en Access pour commencer et qu'on veut l'upgrader ensuite pour le mettre en opérations.

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

Discussions similaires

  1. [AC-2010] Exporter un formulaire vers une autre base Access
    Par informer dans le forum VBA Access
    Réponses: 6
    Dernier message: 27/05/2016, 19h14
  2. Exporter les données dans le bon ordre
    Par frocket dans le forum PostgreSQL
    Réponses: 11
    Dernier message: 15/11/2009, 23h11
  3. Exporter les données dans un fichier excel
    Par merlinerick dans le forum C
    Réponses: 4
    Dernier message: 13/08/2008, 22h52
  4. d6 lire donne d'une autre appli pour la completer?
    Par rebelor dans le forum Bases de données
    Réponses: 2
    Dernier message: 06/04/2007, 07h52
  5. [MySQL] export de donnes d'une table
    Par Greggggggg dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 22/09/2006, 12h16

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