Import xml dans access en vba

Signaler
Messages postés
4
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
6 janvier 2010
-
Messages postés
4
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
6 janvier 2010
-
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

2 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
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"
Messages postés
4
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
6 janvier 2010

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