2017-03-13 11 views
0

すべてのテーブルをXMLファイルにエクスポートする方法を見つけようとしていますが、ID列だけは除外しています。私が見て見つけることができるのは、エクスポートする必要がある列だけを持つクエリを作成するのが最善のソリューションだということです。私の問題は、私はいくつかのテーブルをエクスポートしているとクエリは約100万レコードになります。だから私のコードを残して、すべてのテーブルをエクスポートし、ID列だけを除外する方法はありますか?ここに私のコードは、元のXMLが恒等変換を実行してエクスポートされた後に(あるとしてコピー文書を)MS Access XMLをエクスポートしますが、VBのID要素を除外します

Do Until rsR.EOF 
    On Error GoTo ErrorHandle 
    Set objOtherTbls = Application.CreateAdditionalData 
    objOtherTbls.Add "entry" 
    objOtherTbls.Add "patch" 
    objOtherTbls.Add "reference" 
    objOtherTbls.Add "remediations" 
    objOtherTbls.Add "scanners" 
    objOtherTbls.Add "tempMitStrat" 
    objOtherTbls.Add "vms" 
    Application.ExportXML ObjectType:=acExportTable, _ 
       DataSource:="iavmNotice", _ 
       DataTarget:="C:\Users\" & Environ("USERNAME") & "\Documents\iavms\" & rsR.Fields("iavmNoticeNumber").Value & " (ID " & rsR.Fields("count").Value & ").xml", _ 
       WhereCondition:="[iavmNoticeNumber] = '" & rsR.Fields("iavmNoticeNumber").Value & "'", _ 
       AdditionalData:=objOtherTbls 

       rsR.MoveNext 
       Loop 
       rsR.Close 

答えて

1

は、XSLTを使用してIDを削除することを検討しているとID要素に空のテンプレートを使用して:

XSLT(二重引用符をエスケープしてloadXMLを使用してのようにの.xslファイルまたは埋め込みVBA文字列を保存)

<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
<xsl:output version="1.0" encoding="UTF-8" indent="yes" method="xml"/> 
<xsl:strip-space elements="*"/> 

    <!-- Identity Transform --> 
    <xsl:template match="@*|node()"> 
    <xsl:copy> 
     <xsl:apply-templates select="@*|node()"/> 
    </xsl:copy> 
    </xsl:template> 

    <!-- Removing IDs with Empty Templates (change to actual names) --> 
    <xsl:template match="iavmNoticeID|entryID|patchID|referenceID|remediationsID|scannersID|tempMitStratID|vmsID"/> 

</xsl:transform> 

VBA

Public Sub RunXSLT() 
    Dim xmlDoc As New MSXML2.DOMDocument, xslDoc As New MSXML2.DOMDocument, newDoc As New MSXML2.DOMDocument 

    xmlDoc.Load "C:\Path\To\Input.xml" 
    xslDoc.Load "C:\Path\To\XSLT\SCript.xsl" 

    xmlDoc.transformNodeToObject xslDoc, newDoc 
    newDoc.Save "C:\Path\To\Output.xml" 

    Set xmlDoc = Nothing: Set xslDoc = Nothing: Set newDoc = Nothing 
End Sub 
関連する問題