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 中吗?为什么不将它们作为Attachment
s 嵌入到 Access 表中?
我是新手。我该怎么做?
这就是@ThunderFrame 的建议。调用该表的 vba 代码是什么?
XLST 只是文本。您只需要一个备注字段。
不用担心我是双向的;)所以代码是xsldoc [table].[field] where id = 1
吗?
【参考方案1】:
我的回答可能来得太晚了,但要解决这个问题,只需将方法“load”更改为“loadXML”:
更改自:
xmlDoc.Load strPath & strFile
到:
xslDoc.loadXML strPath & strFile
【讨论】:
以上是关于MS Access 将 xslt 嵌入到 vba的主要内容,如果未能解决你的问题,请参考以下文章
在 ms access 2010 中将嵌入式宏转换为 vba 后,代码不再起作用
安装后,Windows 窗体项目未显示来自我的嵌入式 MS Access DB 的任何数据
将 accde 文件从 MS Access 2013 保存到 MS Access 2010