Excel deleting xml item problem

  • Thread starter Thread starter Spike
  • Start date Start date
S

Spike

I have an excel macro (in an add-in) that is called by the main excel macro
that is deleting various items in an xml file

When it gets to the last line as below it generates the following message

“An unhandled error occurred: Object variable or with block not setâ€

the variable is dimensioned see Dim statement that I have copied here. This
has worked for some time with no problem but suddenly out of the blue
generates this error. I have tried replacing the xml file with a copy, also
tried replacing the add-in with a copy (in case either have been corrupted).
The error description is per “Err.Descriptionâ€

Dim oInstNode As IXMLDOMNode

Set oReplacedNode = oxml.selectSingleNode("/InstrumentList")

Set oCheckNode = oReplacedNode.selectSingleNode("Instrument[OMR='" &
OMRCode & "']")

Any ideas will be gratefully received
 
I think the whole piece of code might help

the row varialble Set oReplacedNode shows "Nothing" which i guess is the
problem

Public Sub delInstrumentCode(ByVal OMRCode As String, ByVal filename As
String)
Dim oxml As DOMDocument
Dim oInstNode As IXMLDOMNode
Dim oReplacedNode As IXMLDOMNode
Dim bLoadSuccess As Boolean
Dim ofs As FileSystemObject

'InstrumentList/Instrument/OMR
'InstrumentList/Instrument/desc

On Error GoTo errHandle

Set ofs = New FileSystemObject
Set oxml = New DOMDocument

If Not ofs.FileExists(filename) Then
MsgBox "The file " & filename & "Cannot be found"
Exit Sub
End If

bLoadSuccess = oxml.Load(filename)

If Not bLoadSuccess Then
MsgBox "The file " & filename & " failed to load correctly." & vbCr
& _
"Error: " & oxml.parseError.reason, vbCritical, "Save Ticker
History Error"
Exit Sub
End If

Set oReplacedNode = oxml.selectSingleNode("/InstrumentList")

Set oInstNode = oReplacedNode.selectSingleNode("Instrument[OMR='" &
OMRCode & "']")
If Not oInstNode Is Nothing Then
Call oReplacedNode.removeChild(oInstNode)
oxml.Save filename
End If

Set oxml = Nothing
Exit Sub
errHandle:
MsgBox "An unhandled error occured: " & Err.Description, vbCritical
End Sub
 
found the error - it was referencing the wrong file. Fairly basic i guess,
it had been hard coded in by someone!
--
with kind regards

Spike


Spike said:
I think the whole piece of code might help

the row varialble Set oReplacedNode shows "Nothing" which i guess is the
problem

Public Sub delInstrumentCode(ByVal OMRCode As String, ByVal filename As
String)
Dim oxml As DOMDocument
Dim oInstNode As IXMLDOMNode
Dim oReplacedNode As IXMLDOMNode
Dim bLoadSuccess As Boolean
Dim ofs As FileSystemObject

'InstrumentList/Instrument/OMR
'InstrumentList/Instrument/desc

On Error GoTo errHandle

Set ofs = New FileSystemObject
Set oxml = New DOMDocument

If Not ofs.FileExists(filename) Then
MsgBox "The file " & filename & "Cannot be found"
Exit Sub
End If

bLoadSuccess = oxml.Load(filename)

If Not bLoadSuccess Then
MsgBox "The file " & filename & " failed to load correctly." & vbCr
& _
"Error: " & oxml.parseError.reason, vbCritical, "Save Ticker
History Error"
Exit Sub
End If

Set oReplacedNode = oxml.selectSingleNode("/InstrumentList")

Set oInstNode = oReplacedNode.selectSingleNode("Instrument[OMR='" &
OMRCode & "']")
If Not oInstNode Is Nothing Then
Call oReplacedNode.removeChild(oInstNode)
oxml.Save filename
End If

Set oxml = Nothing
Exit Sub
errHandle:
MsgBox "An unhandled error occured: " & Err.Description, vbCritical
End Sub
--
with kind regards

Spike


Spike said:
I have an excel macro (in an add-in) that is called by the main excel macro
that is deleting various items in an xml file

When it gets to the last line as below it generates the following message

“An unhandled error occurred: Object variable or with block not setâ€

the variable is dimensioned see Dim statement that I have copied here. This
has worked for some time with no problem but suddenly out of the blue
generates this error. I have tried replacing the xml file with a copy, also
tried replacing the add-in with a copy (in case either have been corrupted).
The error description is per “Err.Descriptionâ€

Dim oInstNode As IXMLDOMNode

Set oReplacedNode = oxml.selectSingleNode("/InstrumentList")

Set oCheckNode = oReplacedNode.selectSingleNode("Instrument[OMR='" &
OMRCode & "']")

Any ideas will be gratefully received
 
Back
Top