Para generar el archivo XML con el contenido del recordset, pasar a la función en el
primer parámetro el path de la base de datos, en el segundo la ruta del fichero XML y
el último parámetro indicar la consulta SQL para el Recordset.
Texto planoImprimir
1. Option Explicit
2.
3. '**************************************************************************
*
4. '* Referencias : Incluir Microsoft Activex Data Objects (ADO) _
5. y Microsoft XML
6. '**************************************************************************
*
7.
8. Private Sub Command1_Click()
9.
10. Dim Base As String
11. Dim Ruta_XML As String
12. Dim Ret As Boolean
13.
14. Base = "C:\Archivos de programa\Microsoft Visual Studio\VB98\Biblio.MDB"
15. Ruta_XML = App.Path & "\archivo.xml"
16.
17. ' Le pasa a la función el path de la base de datos, el path del _
18. archivo xml y la consulta sql
19.
20. Ret = Recordset_a_Xml(Base, Ruta_XML, "SELECT * FROM Authors")
21.
22. 'Si devuelve verdadero lo generó correctamente
23. If Ret Then
24. MsgBox " Archivo XMl generado en: " & Ruta_XML, vbInformation
25. End If
26.
27. End Sub
28.
29.
30.
31. Function Recordset_a_Xml(Path_BD As String, _
32. Path_XML As String, _
33. SQL As String) As Boolean
34.
35. On Error GoTo errSub
36.
37. 'Variables para la conexión ado, el recordset _
38. y el objeto para generar el xml
39. Dim obj_DOMDocument As DOMDocument
40. Dim cn As ADODB.Connection
41. Dim rst As ADODB.Recordset
42.
43. ' Nueva conexión ADO
44. Set cn = New ADODB.Connection
45.
46. cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
47. "Persist Security Info=False;" & _
48. "Data Source=" & Path_BD
49.
50. 'Abre la base de datos
51. cn.Open
52.
53. ' Llena el recordset
54. Set rst = cn.Execute(SQL)
55.
56. ' Graba el contenido del Recordset en el Obj DOMDocument.
57. Set obj_DOMDocument = New DOMDocument
58. rst.Save obj_DOMDocument, adPersistXML
59.
60. 'Cierra el recordset y la conexión a la base de datos
61. rst.Close
62. cn.Close
63.
64. ' Genera el archivo xml
65. obj_DOMDocument.Save Path_XML
66.
67. Recordset_a_Xml = True
68.
69. Exit Function
70.
71.
72. 'Error
73. errSub:
74.
75. MsgBox "Error:" & Err.Number & vbNewLine & _
76. "Descripción:" & Err.Description, vbCritical
77.
78. Recordset_a_Xml = False
79.
80. End Function
81.
82.
83. Private Sub Form_Load()
84. Command1.Caption = " Crear XML de Recordset "
85. End Sub