Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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

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
MSXML2.DOM文档加载函数在VBA中失败_Vba_Ms Access - Fatal编程技术网

MSXML2.DOM文档加载函数在VBA中失败

MSXML2.DOM文档加载函数在VBA中失败,vba,ms-access,Vba,Ms Access,我已经为下面的问题挣扎了一段时间,但还没有找到解决方案 有一个iShare页面包含一个XML文件,我想使用VBA代码下载该文件,然后稍后处理该XML文件并保存到MS Access数据库中 我已经使用下面的代码大约4年了,它工作得非常完美,没有任何问题。但本周它突然停止了工作。 你知道为什么吗 守则: Private Function GetRequests() As Boolean On Error GoTo ErrHandler Dim oDoc As MSXML2.DOMDocum

我已经为下面的问题挣扎了一段时间,但还没有找到解决方案

有一个iShare页面包含一个XML文件,我想使用VBA代码下载该文件,然后稍后处理该XML文件并保存到MS Access数据库中

我已经使用下面的代码大约4年了,它工作得非常完美,没有任何问题。但本周它突然停止了工作。 你知道为什么吗

守则:

Private Function GetRequests() As Boolean
  On Error GoTo ErrHandler

  Dim oDoc As MSXML2.DOMDocument
  Dim Url As String
  Dim sFileName As String

  Set oDoc = New MSXML2.DOMDocument
  oDoc.async = False
  Url = cUrlDatabase & "/" & cApplicationName & "/In/" & cReqXmlFile

  UpdateStatus "Loading " & cReqXmlFile

  If Not oDoc.Load(Url) Then
    c_sLastError = "Could not load XML " & Url
    GoTo EndProc
  End If

  sFileName = sPath & "\Data\requests.xml"

  oDoc.Save sFileName

  GetRequests = True
End Function

代码在
oDoc.Load(Url)
部分失败,返回为false。

对于其他找到此帖子的人: xml解析器现在已经实现了不同的错误类型(请参阅)。 您必须使用以下代码

Set objXML = CreateObject("Msxml2.DOMDocument.6.0")
ObjXML.async=true
objXML.load "/path/to/xml"
If objXML.parseError.errorCode <> 0 Then
   MsgBox "Error was " + objXML.parseError.reason
End If
Set objXML=CreateObject(“Msxml2.DOMDocument.6.0”)
ObjXML.async=true
objXML.load“/path/to/xml”
如果objXML.parseError.errorCode为0,则
MsgBox“错误为”+objXML.parseError.reason
如果结束

这将有助于您调试.xml文件。

对于找到此帖子的其他人: xml解析器现在已经实现了不同的错误类型(请参阅)。 您必须使用以下代码

Set objXML = CreateObject("Msxml2.DOMDocument.6.0")
ObjXML.async=true
objXML.load "/path/to/xml"
If objXML.parseError.errorCode <> 0 Then
   MsgBox "Error was " + objXML.parseError.reason
End If
Set objXML=CreateObject(“Msxml2.DOMDocument.6.0”)
ObjXML.async=true
objXML.load“/path/to/xml”
如果objXML.parseError.errorCode为0,则
MsgBox“错误为”+objXML.parseError.reason
如果结束

这将帮助您调试.xml文件。

下面是一个如何收集错误详细信息的示例:

      Dim xDoc As MSXML.DOMDocument
      Set xDoc = New MSXML.DOMDocument

      If xDoc.Load("C:\My Documents\cds.xml") Then
        ' The document loaded successfully.
        ' Now do something intersting.
      Else
        ' The document failed to load.
        Dim strErrText As String
        Dim xPE As MSXML.IXMLDOMParseError

        ' Obtain the ParseError object
        Set xPE = xDoc.parseError
        With xPE
            strErrText = "Your XML Document failed to load" & _
            "due the following error." & vbCrLf & _
            "Error #: " & .errorCode & ": " & xPE.reason & _
            "Line #: " & .Line & vbCrLf & _
            "Line Position: " & .linepos & vbCrLf & _
            "Position In File: " & .filepos & vbCrLf & _
            "Source Text: " & .srcText & vbCrLf & _
            "Document URL: " & .url
        End With

        MsgBox strErrText, vbExclamation End If

        Set xPE = Nothing
      End If

.

以下是如何收集错误详细信息的示例:

      Dim xDoc As MSXML.DOMDocument
      Set xDoc = New MSXML.DOMDocument

      If xDoc.Load("C:\My Documents\cds.xml") Then
        ' The document loaded successfully.
        ' Now do something intersting.
      Else
        ' The document failed to load.
        Dim strErrText As String
        Dim xPE As MSXML.IXMLDOMParseError

        ' Obtain the ParseError object
        Set xPE = xDoc.parseError
        With xPE
            strErrText = "Your XML Document failed to load" & _
            "due the following error." & vbCrLf & _
            "Error #: " & .errorCode & ": " & xPE.reason & _
            "Line #: " & .Line & vbCrLf & _
            "Line Position: " & .linepos & vbCrLf & _
            "Position In File: " & .filepos & vbCrLf & _
            "Source Text: " & .srcText & vbCrLf & _
            "Document URL: " & .url
        End With

        MsgBox strErrText, vbExclamation End If

        Set xPE = Nothing
      End If

.

对于任何其他正在努力解决这个问题的人,我发现这个错误是由以VBA(一些奇怪的E符号)无法解析的格式编码的文本引起的。objXML在.load之后什么都不是。我相信有很多可能的原因,但我会分享我的发现,以防这对某人有所帮助。感谢上面这些家伙的错误处理程序

对于其他任何一个正在努力解决这个问题的人来说,我发现这个错误是由用VBA(一些奇怪的E符号)无法解析的格式编码的文本引起的。objXML在.load之后什么都不是。我相信有很多可能的原因,但我会分享我的发现,以防这对某人有所帮助。感谢上面这些家伙的错误处理程序

嘿,约翰,你找到解决办法了吗?我也在苦苦挣扎!我发现我的xml文档不正确。我忘了合上一个标签。。。一定是嘿,约翰,你找到解决办法了吗?我也在苦苦挣扎!我发现我的xml文档不正确。我忘了合上一个标签。。。一定是这样