Exporter le contenu de table en XML

Lenouveauapprenti Messages postés 300 Date d'inscription samedi 22 décembre 2018 Statut Membre Dernière intervention 7 avril 2024 - Modifié le 16 févr. 2024 à 00:58
yg_be Messages postés 22752 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 mai 2024 - 20 févr. 2024 à 08:42

Bonjour,

Environnement : VB6

BD : Access 2007

la circonstance m'oblige de coder d'urgence, à partir de mon application conçue dans VB6, l'exportation sous forme XML du contenu d'une table (TableInfos) en Access 2007.

J'ai beau cherche sans résultat, j'ai coché sur la liste des Références la fonction Microsoft XML, v2,6

Merci d'avance pour toute aide,


Windows / Chrome 121.0.0.0

A voir également:

6 réponses

BoBot Messages postés 2786 Date d'inscription mardi 4 juillet 2023 Statut Modérateur Dernière intervention 3 mai 2024 184
17 févr. 2024 à 23:16
Bonjour !
C'est moi, Bobot, votre IA préférée !
Il existe plusieurs façons d'exporter des données de Access vers XML en utilisant VB6. Mais la façon la plus simple est d'utiliser l'objet ADO:

1. Ajoutez une référence à "Microsoft ActiveX Data Objects 2.x Library" et "Microsoft XML, v2,6" dans votre projet.

2. Utilisez ce code pour exporter les données:

```vb
Option Explicit

Private Sub ExporterXML()
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim objXML As New MSXML2.DOMDocument

'Ouvrir la connexion à la base de données
cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=chemin_vers_votre_base_de_donnees.accdb"

'Ouvrir la table
rst.Open "SELECT * FROM TableInfos", cnn

'Exporter les données vers XML
rst.Save objXML, adPersistXML

'Sauvegarder le fichier XML
objXML.Save "chemin_vers_votre_fichier.xml"

'Fermer les objets
rst.Close
cnn.Close
End Sub
```

Remplacez "chemin_vers_votre_base_de_donnees.accdb" et "chemin_vers_votre_fichier.xml" avec les chemins d'accès à votre base de données Access et le fichier xml à générer respectivement.

0
Lenouveauapprenti Messages postés 300 Date d'inscription samedi 22 décembre 2018 Statut Membre Dernière intervention 7 avril 2024 2
17 févr. 2024 à 23:59

Bonjour,

C'est vrai cette réponse m'a résolu le problème, mais, la solution reste encore incomplète.

j'ai utilise deux façons

La première manuelle est directement exercée sur la table ciblée 

ce procédé m'a donne une suite bien structurée, respectant l'ordre selon lequel les données sont classe par ligne, un exemple est comme suite :

<?ml version="1.0" encoding="UTF-8" ?>
- <dataroot xml:od="urn:shemas-microsoft-com:officedata" xmlns:xsi="http:/www.w3.org/2001/XMLSchema-instance"
   xsi:noNamespaceShemaLocation="TableInfos.xsd" generated="2024-02-16T16:04:12">
 -<TableInfos>
   <NOrdre>1</NOrdre>
   <Dossier>SOUSS GREEN FRESH</Dossier>
   <Matricule>8</Matricule>


La deuxième manière, est faite a partir du code VB6, comme suite

Sub ExporterLesDonneesXML()

Dim ObjXML as New MSXML2.DOMDocument
Dim CheminXML as String

'Ouvrir la TableInfos

SQL = "Select * from TableInfos where (Dossier = '" & CStr(VarDossier) & "')

if RS.State = adStateOpen then RS.Close
RS.Open SQLs, DB, adOpenKeySet, adLockPessimistic

'Exporter les donnees
RS.Save ObjXML, adPersistXML

'Sauvegarder le fichier XML

On error goto nnn:

CmnDialog.Filtre = "*.xml)|*.xml
CmnDialog.ShowSave

CheminXML = CmnDialog.FileName
ObjXML.Save CheminXML

RS.Close


nnn:

Ce code m'a donne une exportation structurée comme suite 

- <xml xmlns=:s="uuid:BDC6E3F0-11d1-A2A3-00AA00C14882" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F- 
    00AA00C14882" xmlns:rs="urn:shemas-microsoft-com:rowset" xmlns:z='#RowsetShema">
 - <s:Shema id="RowsetShema">
    - <s:ElementType name="row" content="eltOnly" rs:updatable="true">

Ce que je cherche c'est avoir la structure de la procédure manuelle, respectant l'ordre de datafield dans la ligne de la tableInfos

Merci de votre aide

0
yg_be Messages postés 22752 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 mai 2024 1 477
18 févr. 2024 à 09:47

bonjour,

Je ne vois pas la différence entre les deux exportation.

Je pense que le plus simple, c'est d'écrire du code qui produit, pour chaque enregistrement, un texte tel que:

  <NOrdre>1</NOrdre>
   <Dossier>SOUSS GREEN FRESH</Dossier>
   <Matricule>8</Matricule>
0
Lenouveauapprenti Messages postés 300 Date d'inscription samedi 22 décembre 2018 Statut Membre Dernière intervention 7 avril 2024 2
18 févr. 2024 à 21:20

Bonjour,

J'aimerai vous remettre directement les deux fichiers xml exportés, pour que vous puissiez comprendre mon souci. Hélas, je ne sais pas comment faire.

Un fichiers exporté directement de l'application via le code VB6 cité avant, l'autre fichier exporté par la manipulation manuelle directe de la table ciblé de la base des données. 

La structure du fichier exporté manuellement et plus ordonnée et plus compréhensible. Mon objectif est d'avoir la même structure a partir d'une commande de l'application.

0
yg_be Messages postés 22752 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 mai 2024 1 477
19 févr. 2024 à 07:08

Pourquoi ne pas simplement écrire du code qui produit, pour chaque enregistrement, le texte voulu?

0
Lenouveauapprenti Messages postés 300 Date d'inscription samedi 22 décembre 2018 Statut Membre Dernière intervention 7 avril 2024 2
Modifié le 19 févr. 2024 à 15:42

Bonjour,

Sincèrement, je ne sais pas comment faire.

Pour être plus clair,

le fichier exporte manuellement à partir de la table, la structure exportée respecte l'ordre par numéro de ligne, et affiche toute les enregistrements de la ligne selon leur suite dans la ligne.

le fichier exporte par le code à partir de l'application me renvoie , après la définition des paramétrages des datafield de chaque ligne, les données de la table classée par ordre alphabétique. ce qui donne l'impression que le contenu de la ligne est éparpillée, et rendre la vérification plus fatigante

 Je sais que j'abuse de vote patience, et je m'en excuse. 

0
yg_be Messages postés 22752 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 mai 2024 1 477
Modifié le 19 févr. 2024 à 16:27

Un fichier xml contient simplement du texte.

Un programme VB peut contenir des instructions qui écrivent du texte dans un fichier.

Le plus simple, je pense, c'est d'écrire ce code VB.

Connais-tu la syntaxe VB pour écrire du texte dans un fichier?

En utilisant cette syntaxe, tu peux facilement créer un fichier contenant le texte tel que tu le souhaites.

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Lenouveauapprenti Messages postés 300 Date d'inscription samedi 22 décembre 2018 Statut Membre Dernière intervention 7 avril 2024 2
19 févr. 2024 à 16:14

Sincèrement, je ne sais pas

0
yg_be Messages postés 22752 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 mai 2024 1 477
19 févr. 2024 à 16:28

Si tu ne connais pas la syntaxe VB pour écrire du texte dans un fichier, je pense que le plus utile, c'est de l'apprendre.

En utilisant cette syntaxe, tu peux facilement créer un fichier contenant le texte tel que tu le souhaites.

0
Lenouveauapprenti Messages postés 300 Date d'inscription samedi 22 décembre 2018 Statut Membre Dernière intervention 7 avril 2024 2
19 févr. 2024 à 16:40

Je veux bien l'apprendre, si vous accepteriez de m'orienter vers un tuto ou des exemples

Avec mes remerciements d'avance

0
yg_be Messages postés 22752 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 mai 2024 1 477
20 févr. 2024 à 08:42

Je suggère de faire une recherche "VB pour écrire du texte dans un fichier".

0