Export/import date din Acces in format XML

trucuri, sfaturi si alte idei pentru imbunatatirea lucrului cu Access
Închis
newbie
Moderator
Moderator
Mesaje: 559
Membru din: Mie Mar 09, 2011 9:38 am
Localitate: Tirgu Mures

Export/import date din Acces in format XML

Mesaj de newbie » Mie Iul 06, 2011 5:03 pm

Asa cum am promis, iata un mic tutorial despre import/export date dintr-o baza Acces in format XML
Va reamintesc ca desi este vorba de o problema pe care am vrut sa o rezolv pentru o problema particulara, am incercat ca rezolvarea sa fie valabila pentru orice BD. Pentru mine varianta FE/BE nu era viabila. Respectiv am nevoie de datele operate pe un alt PC care nu se afla in retea, pe care nu am Office 2007, si baza de date a fost construita in asa fel incit sa fie instalabila pe alt PC, dar la nevoie sa pot modifica formulare-rapoarte si sa reinstalez BD acolo cu toate datele operate pina in acel moment. Tabelele le pastrez pentru ca am nevoie de relatiile dintre ele, doar ca BD o livrez cu zero inregistrari operatorul face exportul datelor din BD instalata, apoi importul in noua BD pe care o primeste.
In al doile rind ce este XML gasiti pe acest link Wikipedia (va recomand sa il cititi)
Am ales XML pentru mai multe motive, dar ca exemplu va dau urmatorul: eu aveam un cimp intr-un tabel de tip yes/no. La importul din excel acest cimp era transformat in cimp text si intrarile erau true sau fals, lucru pe care eu nu il doream.
Si acum - iata metoda de export din BD cu un buton:

Cod: Selectaţi tot

Private Sub Command0_Click()
Const acExportTable = 0
Set objAccess = CreateObject("Access.Application")
objAccess.OpenCurrentDatabase "C:\Documents and Settings\............baza.accdb"
objAccess.ExportXML acExportTable, "nume_tabel", "C:\Export\nume_tabel.xml"
End Sub
"C:\documents and..... " este calea spre baza de date (adica acolo unde se gaseste baza de date a dumneavoastra)
nume_tabel - acolo scrieti numele tabelului pe care doriti sa il exportati
"C:\Export\Birouri.xml" este calea de export ( in folderul Export, discul C) respectiv numele sub care va fi salvat tabelul.
Daca doriti sa exportati mai multe tabele din Bd copati linia objAccess.ExportXML acExportTable,....... de cite ori aveti nevoie inlocuind numele tabelului pe care doriti sa il exportati

Pentru import folositi urmatorul cod:

Cod: Selectaţi tot

Private Sub Command5_Click()

Dim StrFileName As String
 Dim fd As FileDialog
 
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    Dim vrtSelectedItem As Variant
    With fd
    
        If .Show = -1 Then
        
            For Each vrtSelectedItem In .SelectedItems
                Application.ImportXML _
                    DataSource:=vrtSelectedItem, _
                    ImportOptions:=acAppendData

            Next vrtSelectedItem
       Else
        End If
    End With
    Set fd = Nothing
End Sub
NOTA 1: ImportOptions:=acAppendData poate fi modificat sa va importe si structura tabelului cu acApendStructureAndData sau cu acApendStructure pentru a importa doar structura tabelului.
NOTA2: La importul din XML, cind importati si/sau structura tabelului, TOATE cimputile din tabel vor fi de tip text. Deci veti avea de editat proprietatile cimpurilor daca nu importati doar date ci si/sau structura tabelelor. (cu F1 aflati mai multe despre comanda importXML)
NOTA3: Daca primiti eroare la rularea codului de import, cititi acea eroare.[ In general probabil ca in modulul macro la Tools - references trebuie sa verificati si sa activati bibliotecile Microsoft Office de acolo ( nu toate ci doar cele care contin expresiile folosote in cod)]
Sper ca am reusit sa fiu destul de clar in explicatii

Închis

Înapoi la “Tips and tricks in Access (indiferent de versiune)”