Import xml dans access en vba

Matol Messages postés 4 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 6 janvier 2010 - 13 mai 2008 à 13:30
Matol Messages postés 4 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 6 janvier 2010 - 13 mai 2008 à 14:06
Bonjour,

Je voudrais importer des fichiers xml (avec des noms differents) les importer dans un table ms access puis, une fois le traitement effectué, deplacer le fichier et le renommer avec certaines balises contenues dans le xml

Je suis un peu perdu, j'ai commencé par ceci :

'déclaration file system object
Dim FSO
'instanciation
Set FSO = CreateObject("Scripting.FileSystemObject")



'importation des données xml
Application.ImportXml _
    DataSource:="C:\Documents and Settings\moi\Bureau\1414\Xml\1414.xml", _
    ImportOptions:=acAppendData
   
'déplacement du fichier
Set Ftxt = FSO.GetFile("C:\Documents and Settings\moi\Bureau\1414\xml\1414.xml")   'Fichier origine
Ftxt.Move ("C:\Documents and Settings\moi\Bureau\1414\Archives\1414.xml") 'emplacement destination
      
'renommage auto des fichiers
Dim fs
 
Monfichier = "C:\Documents and Settings\omathis\Bureau\1414\Archives\1414.xml"
 
Set fs = CreateObject("Scripting.FileSystemObject")
ExistFile = fs.FileExists(Monfichier)
 
If ExistFile Then
  
   'Le fichier existe
 
  dateheure = Year(Date) & "_" & Month(Date) & "_" & Day(Date) & "_" & Time
  dateheure2 = Replace(dateheure, ":", "_")
 
  Set FSO = CreateObject("Scripting.FileSystemObject")
  Set aFile = FSO.GetFile(Monfichier)
  
  partfic = Split(Monfichier, ".")
  Monfichier = partfic(0) & "_" & dateheure2 & ".xml"
  
  aFile.Move Monfichier
 
Else
End If



'impression automatique
    DoCmd.RunMacro "ImpressionAuto"
End Sub



J'arrive a importer mes données mais je ne sais qu'a partir d'un nom de fichier precis.
Je voudrais, si je copie un fichier ou plusieurs dans un dossier (dossier toujours au meme emplacement) que l'import se fasse tout seul.
Pour ce qui est du renommage des fichiers, la structure du xml est TOUJOURS la même.

Du style






 



<?
xml version="1.0" encoding="UTF-8"
?>







[file:///C:/Documents%20and%20Settings/omathis/Bureau/1414.xml#

-

]

<


Fiche1414


>











 



<


Date


>


2008-06-05


</


Date


>











 



<


Nom


>


C'est le nom


</Nom


>











 



<


Intervenant


>


qsdfqsdfqsdf


</




Intervenant




>











 ...


 </Fiche1414>







Les noms de fichiers devraient être composé ainsi

Nom_Date_intervenant.xml

Si vous pouvez m'aider la dessus, un grand merci d'avance
Bonne journée

Matol
A voir également:

2 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
13 mai 2008 à 13:45
pour le nom, qui doit être dynamique, suffit de mettre une variable :

Private Sub ImportXML (ByRef vsFileName as string )
'déclaration file system object
Dim FSO
'instanciation
Set FSO = CreateObject("Scripting.FileSystemObject")

'importation des données xml
Application.ImportXml _
DataSource:=vsFileName, _
ImportOptions:=acAppendData

...
End Sub

et lors de l'appel :

ImportXML "C:\Documents and Settings\moi\Bureau\1414\Xml\1414.xml"
0
Matol Messages postés 4 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 6 janvier 2010
13 mai 2008 à 14:06
Merci pour ta reponse mais tu dois t'en douter je ne l'ai pas bien saisie.

En fait, le dossier de depose des fichiers xml et toujours le même, comme celui d'archivage (avec le nouveau nom)

Et tous devrait se faire sur un timer, en automatique.

Je pensais faire une boucle du style

'Set objFSO = CreateObject("Scripting.FileSystemObject")



'Set objDossier = objFSO.GetFolder("
[file://\\Documents
\\Documents
]
and Settings\moi\Bureau\1414\Xml")



'For Each fichier In objDossier.Count

et lancer l'import des fichiers mais j'y arrive pas.
Je sais je suis un cancre

Matol
0
Rejoignez-nous