MS Access 将 xslt 嵌入到 vba

Posted

技术标签:

【中文标题】MS Access 将 xslt 嵌入到 vba【英文标题】:MS Access embed xslt into vba 【发布时间】:2017-02-16 18:59:40 【问题描述】:

我有两个 xslt 文件加载到我的 ms access vba 中。这个访问数据库将被传递,以便最大限度地减少丢失的 xslt 文件我想知道是否可以将 xsl 写入 vba?

这是我的 vba 代码:

    Private Sub btnImport_Click()
    Dim strFile As String, strPath As String
    ' REFERENCE MS XML, v6.0
    Dim xmlDoc As New MSXML2.DOMDocument60, xslDoc As New MSXML2.DOMDocument60
    Dim newDoc As New MSXML2.DOMDocument60

    strPath = "C:\Users\1122335\Desktop\iavms\IAVM XML dump on 2017-01-20\"
    strFile = Dir(strPath & "*.xml")

    ' LOAD XSL ONLY ONCE
    xslDoc.Load "C:\Users\1122335\Desktop\secondLoad.xsl"

    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:\Users\1122335\Desktop\temp.xml"

        ' APPEND TO TABLES
        On Error Resume Next
        Application.ImportXML "C:\Users\1122335\Desktop\temp.xml", acAppendData
        strFile = Dir()
    Wend

   ' RELEASE DOM OBJECTS
   Set xmlDoc = Nothing: Set xslDoc = Nothing: Set newDoc = Nothing

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    strPath = "C:\Users\1122335\Desktop\iavms\IAVM XML dump on 2017-01-20\"
    strFile = Dir(strPath & "*.xml")

        ' LOAD XSL ONLY ONCE
    xslDoc.Load "C:\Users\1122335\Desktop\finally.xsl"

    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:\Users\1122335\Desktop\temp.xml"

        ' APPEND TO TABLES
        On Error Resume Next
        Application.ImportXML "C:\Users\1122335\Desktop\temp.xml", acAppendData
        strFile = Dir()
    Wend

   ' RELEASE DOM OBJECTS
    Set xmlDoc = Nothing: Set xslDoc = Nothing: Set newDoc = Nothing

End Sub

【问题讨论】:

您想将文件二进制文件作为 base-64 字符串嵌入到 VBA 中吗?为什么不将它们作为Attachments 嵌入到 Access 表中? 我是新手。我该怎么做? 这就是@ThunderFrame 的建议。调用该表的 vba 代码是什么? XLST 只是文本。您只需要一个备注字段。 不用担心我是双向的;)所以代码是xsldoc [table].[field] where id = 1吗? 【参考方案1】:

我的回答可能来得太晚了,但要解决这个问题,只需将方法“load”更改为“loadXML”:

更改自: xmlDoc.Load strPath &amp; strFile

到: xslDoc.loadXML strPath &amp; strFile

【讨论】:

以上是关于MS Access 将 xslt 嵌入到 vba的主要内容,如果未能解决你的问题,请参考以下文章

在 ms access 2010 中将嵌入式宏转换为 vba 后,代码不再起作用

安装后,Windows 窗体项目未显示来自我的嵌入式 MS Access DB 的任何数据

将 accde 文件从 MS Access 2013 保存到 MS Access 2010

将 MS Excel 链接到 MS Access 查询

将数据从 MS Access 表单保存到同一个 MS Access 数据库中的另一个表?

每次从 MS Access 发生任何更改时,将数据从 MS Access 数据库传输到 Mysql 数据库[关闭]