To open an XML string as a recordset, use the code that
follows. Make sure that your Visual Basic project has the appropriate
references to the
Microsoft ActiveX Data Access Components 2.5 Library so that ADO can be used as shown.
Sample Code
Public Function RecordsetFromXMLString(sXML As String) As Recordset
Dim oStream As ADODB.Stream
Set oStream = New ADODB.Stream
oStream.Open
oStream.WriteText sXML 'Give the XML string to the ADO Stream
oStream.Position = 0 'Set the stream position to the start
Dim oRecordset As ADODB.Recordset
Set oRecordset = New ADODB.Recordset
oRecordset.Open oStream 'Open a recordset from the stream
oStream.Close
Set oStream = Nothing
Set RecordsetFromXMLString = oRecordset 'Return the recordset
Set oRecordset = Nothing
End Function
Please note that the preceding code accepts a String.
The following code accepts a DOM object as the source for the recordset. Note
that the Stream object is not needed:
Public Function RecordsetFromXMLDocument(XMLDOMDocument As DOMDocument) As Recordset
Dim oRecordset As ADODB.Recordset
Set oRecordset = New ADODB.Recordset
oRecordset.Open XMLDOMDocument 'pass the DOM Document instance as the Source argument
Set RecordsetFromXMLDocument = oRecordset 'return the recordset
Set oRecordset = Nothing
End Function
After you open the recordset in any of these ways, you can use the
recordset as any other disconnected recordset.
Note that the current
position,
AbsolutePage and other navigation properties are not stored in the XML
document; therefore, the newly opened recordset is always positioned at the
first row.