2017-10-13 13 views
0

J'essaie d'importer un ensemble de fichiers .xml dans des tables Access. J'ai créé un fichier .xslt qui fonctionne correctement lorsque j'exécute manuellement l'importation dans Access. Mais lorsque j'essaie d'utiliser le code VBA (que j'ai extrait d'un autre article ici) pour transformer le fichier .xml, le fichier temp.xml résultant est complètement vide. Qu'est-ce que je rate?Utilisation de VBA pour importer du code XML dans MS Access avec le fichier de transformation xslt

Public Sub TransformAndImportMultipleXMLs() 
    Dim strFile As String, strPath As String 

    Dim xmlDoc As New MSXML2.DOMDocument60 
    Dim xslDoc As New MSXML2.DOMDocument60 
    Dim newDoc As New MSXML2.DOMDocument60 

    strPath = "y:\" 
    strFile = Dir(strPath & "*.xml") 

    xslDoc.async = False 
    xslDoc.validateOnParse = False 
    xslDoc.resolveExternals = False 

    xslDoc.Load "C:\JSTAdb\LinkIncidentID.xslt" 

    While strFile <> "" 
     ' REINITIALIZE DOM OBJECTS 
     Set xmlDoc = New MSXML2.DOMDocument60 
     Set newDoc = New MSXML2.DOMDocument60 

     ' LOAD XML SOURCE 
     xmlDoc.Load strPath & strFile 

     ' TRANSFORM SOURCE 
     xmlDoc.transformNodeToObject xslDoc, newDoc 
     newDoc.Save "C:\JSTAdb\temp.xml" 

     ' APPEND TO TABLES 
     Application.ImportXML "C:\JSTAdb\temp.xml", acAppendData 
     strFile = Dir() 
    Wend 

    'RELEASE DOM OBJECTS 
    Set xmlDoc = Nothing: Set xslDoc = Nothing: Set newDoc = Nothing 
End Sub 
+1

Veuillez poster un exemple XML et XSLT. De même, comment exécutez-vous manuellement l'importation dans Access *? – Parfait

Répondre

0

Je l'ai compris. Les fichiers .xml provenaient d'un formulaire InfoPath et contenaient un certain nombre de grandes pièces jointes photo. Je n'attendais pas assez longtemps pour que le résultat soit transformé. J'avais juste besoin d'un peu de patience. Cela fonctionne bien maintenant.