访问VBA XML加载访问被拒绝错误 - 已修复

时间:2014-08-01 13:07:44

标签: xml access-vba

团队 - 访问VBA出现问题 - 访问被拒绝错误。我似乎已经通过其他帖子的进一步帮助解决了这个问题。此代码允许提取XML并读取其属性。我已经减少了代码,因为我无法发布其他内容:

Sub test()

Dim Queue As String
   Dim aid As String
   Dim tp As String
...

 DoCmd.SetWarnings False
Dim xmlhttp As MSXML2.xmlhttp
Dim xmldoc As MSXML2.DOMDocument
Dim XMLNodes As MSXML2.IXMLDOMNodeList
Dim xmlElement As MSXML2.IXMLDOMElement
Dim bookTitle As String

' Fetch the XML
Set xmlhttp = CreateObject("Microsoft.xmlHTTP")
xmlhttp.Open "Get", "http://....xml", False
xmlhttp.send

' Create a new XMLDocument to which to load the XML text
Set xmldoc = New DOMDocument
xmldoc.loadXML (xmlhttp.responseText)

For Each n In xmldoc.selectNodes("*")

    ts = n.Attributes.getNamedItem("ts").Text

    Next

    For Each n In xmldoc.selectNodes("//myNode")


    Queue = n.Attributes.getNamedItem("cq").Text
    aid = n.Attributes.getNamedItem("id").Text
    tp = n.Attributes.getNamedItem("tp").Text
    astate = n.Attributes.getNamedItem("as").Text
    rc = n.Attributes.getNamedItem("rc").Text


      i = i + 1
    Next
   DoCmd.SetWarnings True
End Sub

1 个答案:

答案 0 :(得分:0)

一些建议:

  1. 尝试使用MSXML2.ServerXMLHTTP60代替MSXML2.xmlhttp。在访问仅本地XML文档时应使用后者。
  2. xmlhttp.Open "Get", "http://....xml", False, [username], [password]还有其他两个参数:用户名和密码。不好的是,它是一个纯文本。
  3. 查看方法Debug.Print xmlhttp.getAllResponseHeaders。标题将提供有价值的信息,说明您收到错误的原因。
  4. 进一步的Google搜索还可能导致Internet Explorer内部网安全设置,例如通过未加密的表单发送信息或允许跨域请求。以及将目标URL添加到Intranet区域。