Access - Importacion de datos a access ¡pf!

 
Vista:

Importacion de datos a access ¡pf!

Publicado por darodve (7 intervenciones) el 16/04/2004 08:28:03
partiedo de un archivo xml previo, ¿como se podria importar dicho archivo a access mediante codigo para que los datos q contiene el archivo se puedan ingresar en mi base de datos y poder trabajar con ellos en mi aplicacion access? Y viceversa, como exportar los datos de una base de datos para generar una pagina en xml con dichos datos. Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Importacion de datos a access ¡pf!

Publicado por Alejandro (4142 intervenciones) el 05/05/2023 00:49:02
Para importar datos de un archivo XML a una base de datos Access mediante código, puedes utilizar la librería Microsoft XML. Primero, debes definir un objeto de tipo DOMDocument y cargar el archivo XML:

1
2
Dim xmlDoc As New MSXML2.DOMDocument
xmlDoc.Load "ruta_del_archivo.xml"

Luego, puedes recorrer los nodos del archivo XML utilizando el método SelectNodes y la sintaxis de XPath para acceder a los elementos y atributos que necesitas. Por ejemplo, si el archivo XML tiene una estructura como esta:

1
2
3
4
5
6
7
8
9
10
<root>
  <producto id="1">
    <nombre>Producto 1</nombre>
    <precio>10.00</precio>
  </producto>
  <producto id="2">
    <nombre>Producto 2</nombre>
    <precio>20.00</precio>
  </producto>
</root>

Puedes acceder a los datos de los productos con el siguiente código:

1
2
3
4
5
6
7
8
9
Dim productos As MSXML2.IXMLDOMNodeList
Set productos = xmlDoc.SelectNodes("/root/producto")
 
Dim producto As MSXML2.IXMLDOMNode
For Each producto In productos
    Debug.Print producto.Attributes.getNamedItem("id").Text
    Debug.Print producto.SelectSingleNode("nombre").Text
    Debug.Print producto.SelectSingleNode("precio").Text
Next producto

Para insertar los datos en la base de datos Access, puedes utilizar consultas SQL insert. Por ejemplo:

1
2
3
4
5
6
Dim consulta As String
consulta = "INSERT INTO Productos (ID, Nombre, Precio) " & _
           "VALUES (" & producto.Attributes.getNamedItem("id").Text & ", " & _
           "'" & producto.SelectSingleNode("nombre").Text & "', " & _
           producto.SelectSingleNode("precio").Text & ")"
CurrentDb.Execute consulta

Para exportar datos de una base de datos Access a un archivo XML, puedes utilizar la misma librería Microsoft XML. Primero, debes crear un objeto de tipo Recordset con los datos que quieres exportar. Por ejemplo:

1
2
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT * FROM Productos")

Luego, puedes recorrer los registros del Recordset y crear nodos y elementos XML con el método CreateElement de la librería MSXML2.DOMDocument. Por ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Dim xmlDoc As New MSXML2.DOMDocument
Dim root As MSXML2.IXMLDOMElement
Set root = xmlDoc.createElement("root")
xmlDoc.appendChild root
 
Do While Not rs.EOF
    Dim producto As MSXML2.IXMLDOMElement
    Set producto = xmlDoc.createElement("producto")
    producto.setAttribute "id", rs("ID")
    root.appendChild producto
 
    Dim nombre As MSXML2.IXMLDOMElement
    Set nombre = xmlDoc.createElement("nombre")
    nombre.Text = rs("Nombre")
    producto.appendChild nombre
 
    Dim precio As MSXML2.IXMLDOMElement
    Set precio = xmlDoc.createElement("precio")
    precio.Text = rs("Precio")
    producto.appendChild precio
 
    rs.MoveNext
Loop
 
rs.Close

Finalmente, puedes guardar el archivo XML con el método Save del objeto DOMDocument:

1
xmlDoc.Save "ruta_del_archivo.xml"

Espero que esta información te sea útil.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar