Access VBA未运行我的XML转换
我有一个access数据库,它将数据导出到XML文档,然后使用XSLT文件进行转换。直到几分钟前,它还工作得很好,突然,它不再转换XML,但它仍然进行第一次导出 这是我的VBA代码Access VBA未运行我的XML转换,xml,ms-access,xslt,vba,Xml,Ms Access,Xslt,Vba,我有一个access数据库,它将数据导出到XML文档,然后使用XSLT文件进行转换。直到几分钟前,它还工作得很好,突然,它不再转换XML,但它仍然进行第一次导出 这是我的VBA代码 Option Compare Database Option Explicit Private Sub Command364_Click() Dim objAD As AdditionalData Set objAD = Application.CreateAdditionalData
Option Compare Database
Option Explicit
Private Sub Command364_Click()
Dim objAD As AdditionalData
Set objAD = Application.CreateAdditionalData
With objAD
.Add "master_version"
.Add "press_section"
.Add "version"
.Add "task_info_press_section"
.Add "task_info_post_press"
.Add "post_press_version"
End With
Application.ExportXML acExportQuery, "order", _
"C:\Users\James Brace\Documents\Technique Access Stuff\Exports\ExportPreXSLT.xml", _
WhereCondition:="[ORDERPK] = " & [Forms]![frmMAINENTRY]![ORDERPK], _
AdditionalData:=objAD
Application.TransformXML "C:\Users\James Brace\Documents\Technique Access Stuff\Exports\ExportPreXSLT.xml", _
"C:\Users\James Brace\Documents\Technique Access Stuff\Exports\XSLT Template.xsl", _
"C:\Users\James Brace\Documents\Technique Access Stuff\Exports\ExportTransformed.xml"
End Sub
这段代码没有任何变化,所以我不明白为什么它突然停止工作。它肯定会触发整个事件,因为我已经在TransformXML命令之前和之后使用MsgBox行对它进行了测试。这是我正在使用的XSLT
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!-- removes specified nodes from all elements -->
<xsl:template match="ORDER"/>
<xsl:template match="ORDERPK"/>
<xsl:template match="PRESS_x0020_SECTION"/>
<xsl:template match="POST_x0020_PRESS"/>
<!-- Creates attributes against the ORDER element -->
<xsl:strip-space elements="*"/>
<xsl:output method="xml" indent="yes"/>
<xsl:template match="dataroot">
<xsl:copy>
<xsl:apply-templates select="@*|node()[not(self::master_version)]"/>
</xsl:copy>
</xsl:template>
<xsl:template match="job_id | site_code | Replace"/>
<!-- identity transform -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="order">
<order job_id="{job_id}" site_code="{site_code}" replace="{Replace}">
<xsl:apply-templates select="@*|node()"/>
<xsl:apply-templates select="../master_version"/>
</order>
</xsl:template>
<xsl:template match="press_section">
<press_section>
<xsl:apply-templates select="@*|node()"/>
<xsl:apply-templates select="../task_info_press_section"/>
</press_section>
</xsl:template>
<xsl:template match="../task_info_press_section">
<xsl:element name="task_info">
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
<xsl:template match="task_info_post_press">
<xsl:element name="task_info2">
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
<xsl:template match="master_version[not(ORDER = //order/ORDERPK)]"/>
<xsl:template match="press_section[not(ORDER = //order/ORDERPK)]"/>
<xsl:template match="version[not(ORDER = //order/ORDERPK)]"/>
<xsl:template match="task_info_press_section[not(ORDER = //order/ORDERPK)]"/>
<xsl:template match="task_info_post_press[not(ORDER = //order/ORDERPK)]"/>
<xsl:template match="post_press_version[not(ORDER = //order/ORDERPK)]"/>
</xsl:stylesheet>
非常感谢您的帮助,谢谢
编辑;我还尝试过反编译然后编译代码,以及对数据库进行压缩和修复,但这并没有改变任何事情。没关系,这是XSLT中的一个错误。我找不到错误,但是从头开始重新编写代码就完成了任务。那么为什么不将其全部删除呢?这对其他任何人都没有帮助。