2017-10-13 176 views
0

我试图将一堆.xml文件导入到Access表中。我创建了一个.xslt文件,当我在Access中手动运行导入时,它可以正常工作。但是当我尝试使用VBA代码(我从另一篇文章中提取)来转换.xml文件时,生成的temp.xml文件完全是空的。我错过了什么?使用VBA将XML导入带有xslt转换文件的MS Access

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

请发布示例XML和XSLT。另外,你如何*在Access *中手动运行导入? – Parfait

回答

0

我想通了。 .xml文件来自InfoPath表单并包含大量照片附件。我没有等待足够长的时间才能将结果转化。我只是需要一点耐心。现在工作正常。