Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1637 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Access et XML] Exportation de données en XML

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Access et XML] Exportation de données en XML

n°1275889
Manu la Sc​ience
...la science ... pas toujours
Posté le 02-01-2006 à 15:43:33  profilanswer
 

Bonjour à tous,
 
J'ai posé une question sur la partie XML du forum, mais sans succès... Cette question concerne également Access...
 
Je vous expose mon problème :
 
Je souhaiterai utiliser Access comme interface pour saisir un fichier XML avec une structure comme présentée ci dessous

Code :
  1. <album>
  2.   <personne>
  3.     <nom>
  4.     </nom>
  5.     <image>
  6.       <commentaire>
  7.       </commentaire>
  8.       <fichier>
  9.       </ficher>
  10.     </image>
  11.     <image>
  12.     ....
  13.     </image>
  14.   </personne>
  15.   <personne>
  16.   ...
  17.   </personne>
  18. </album>


J'ai essayé de réaliser une base de données et d'exporter le résultat, mais je ne peux exporter qu'une table et le résultat est très loin de ce que je souhaite. J'ai également essayé de le faire par reverse engeneering en important mon fichier XML et il me découpe cela en 2 tables sans jointure entre elles...
 
Comment dois-je procéder ? Je pense que mes données doivent être dans 2 tables différentes (une table pour les personnes et une avec les références des images) ayant une jointure. Dois-je faire un moteur de construction de mon fichier XML en VBA ou axiste-t'il un moyen que je n'aurai pas vu ?
 
Que dois-je faire et avez-vous des idées... Je me débrouille en VBA, un peu moins en XML. Je pense que je pourrai faire ce moteur mais s'il y a plus simple, je suis preneur...
 
Merci de vos réponses.


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
mood
Publicité
Posté le 02-01-2006 à 15:43:33  profilanswer
 

n°1275926
Arjuna
Aircraft Ident.: F-MBSD
Posté le 02-01-2006 à 16:38:10  profilanswer
 

Je pense qu'à la main c'est ce qu'il y a de plus simple.
 
A tout hasard, t'as la dernière version d'Access et que ce dernier implémente le support XML à la sauce SQL Server :
 
Fait une requête "simple" avec une bête jointure.
Et à la fin de ta requête, tapes "for xml auto".
 
Si ça plante, laisse tomber, si ça plante pas, creuse cette option "for xml ...", pour récupérer le contenu d'une requête au format XML.
 
Pour l'import, idem, avec SQL Server t'as un mode qui permet d'inésérer des données dans des tables à partir d'un fichier XML hirarchique, mais je ne me souviens plus de la syntaxe, et si ça existe sous Access, c'est de toute façon moins bordélique...
 
Dans tous les cas, un petit coup de DOM (objet MSXML) en VBA et ce sera à la fois plus souple et plus rapide je pense.
 
(rapide, à mettre en place, pas à l'éxécution hein ;))

n°1275929
Manu la Sc​ience
...la science ... pas toujours
Posté le 02-01-2006 à 16:43:07  profilanswer
 

Je te remercie de cet eclaircissement, Arjuna... Je vois que entre 2 posts sur ton problème, tu te penche sur celui des autres... (je ne peux  malheureusement pas t'aider, là, désolé...).
 
J'ai Access 2002. Je vais voir ce qu'il peut faire avec les requêtes, mais j'en doute. Sinon, j'essaierai avec 2003 comme tu me l'as indiqué.
 
Sinon, je devrai le faire à la main.


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
n°1275956
Arjuna
Aircraft Ident.: F-MBSD
Posté le 02-01-2006 à 17:08:06  profilanswer
 

Dans tous les cas, lire et écrire un fichier XML avec DOM, c'est tellement "simple" qu'à mon avis, tu passeras moins de temps à faire ça.

n°1275972
Manu la Sc​ience
...la science ... pas toujours
Posté le 02-01-2006 à 17:25:35  profilanswer
 

Avec cette appli, je souhaite seulement générer le XML. Cette appli ne servira qu'à construire le fichier XML de façon convivial et le XML est destiné à être parser dans un explorateur avec une feuille XSL...
Je veux utiliser Access pour ces possibilités d'interface et d'enregistrement de données dans des tables organisées... Je n'envisage pas d'importer le xml car la base de données stocke les données et la mise à jour du fichier XML se fera par une édition d'un nouveau fichier...


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
n°1276911
Manu la Sc​ience
...la science ... pas toujours
Posté le 04-01-2006 à 15:11:30  profilanswer
 

Je l'ai fait à la main sans utiliser DOM (ce que je ne sais pas vraiment faire, je mélange tout entre ADO, ADOX, DOA..) :
 
Je fais une requête sur mes deux tables et je crée un fichier type text avec une extension XML.  
 

Code :
  1. Set fs = CreateObject("Scripting.FileSystemObject" )
  2. Set a = fs.CreateTextFile(".\fichiertest.xml", True)


 
Puis j'ajoute des lignes de texte à mon fichier XML en parcourant mon recordset et en faisant quelques traitements.  
 

Code :
  1. a.WriteLine ("ligne de texte rajoutée" )

 
 
C'est peut être pas très joli et un peu lent (je verrai quand j'aurai beaucoup d'enregistrements), mais ca marche....
 
 


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
n°1276930
Arjuna
Aircraft Ident.: F-MBSD
Posté le 04-01-2006 à 15:27:51  profilanswer
 

Mise à part que DOM te permet de bosser proprement dans un objet représentant ton arbre XML, ta solution est très bien pour moi.
 
Au moins, elle est lisible, et compréhensible par le premier demeuré qui passe, ce qui est loin d'être le cas du code de beaucoup de "bons" développeurs.
 
En tout cas, moi je préfère faire un code pas optimisé, pas avec les meilleures solutions, mais que mon chien comprend, plutôt que de coder comme un troll du fond de sa carverne, et découvrir un jour que mon chien à fait sa valise et m'a quitté :o


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Access et XML] Exportation de données en XML

 

Sujets relatifs
[access] récupérer un dictionnaire de données d'1 BD[XML-XSL] [Access] Création d'un album photo
[wxWidgets] sockets et base de donnéesRecherche type de donnees
Problème d'écriture XML[C#] Xml Serialisation
[SQL / ACCESS] question un peu tordu sur une requete.Mon socket reçoit des données, répond, puis après... chais pas...
Email depuis données Excel par VBA 
Plus de sujets relatifs à : [Access et XML] Exportation de données en XML


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR