Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Access VBA未运行我的XML转换_Xml_Ms Access_Xslt_Vba - Fatal编程技术网

Access VBA未运行我的XML转换

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

我有一个access数据库,它将数据导出到XML文档,然后使用XSLT文件进行转换。直到几分钟前,它还工作得很好,突然,它不再转换XML,但它仍然进行第一次导出

这是我的VBA代码

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中的一个错误。我找不到错误,但是从头开始重新编写代码就完成了任务。

那么为什么不将其全部删除呢?这对其他任何人都没有帮助。