Predmet:Re: XML i access 2003
Objasnjenje cijele procedure Zapisixml
PreuzmiIzvorni kôd (Visual Basic):Function Zapisxml()
Dim Tabele(1 To 2) As String ' dimenzionisane dvije memorijske pod nazivom tabele
Dim Putanja As String
Dim XmlFile As String
Dim Temp As String
Tabele(1) = "Zahtjev" ' ?osnovna tabela ' Upisano u memrijsku Tabele(1) vrijednost "Zahtjev"
Tabele(2) = "Parametar" ' Pridodata tabela--Upis u drugu memorijsku
Putanja = "c:\Tring\xml\" 'Putanja zapisa bez imena filea Upis u mem. putanja
XmlFile = "stampatinefiskalnidokument.xml" ' Ime xml fajla Upis u mem xmlfile
'export u xml fajl pod nazivom sys.dll na putanji iz memorijske putanja
Application.ExportXML acExportTable, Tabele(1), Putanja & "sys.dll", , , , acUTF8, , , Tabele(2)
Close #1 'Zatvori sekvencialni fajl 1
Close #2 'Zatvori file 2
'Ovo se sam stavio samo zato ako dodje do greske pa pokrenes proceduru a ne dodje do kraja onda znaju ostati otvoreni fajlovi pa procedura poslije nece da radi
Inace kada se zavrsi i istestira procedura moze se i brisati.
Open Putanja & "sys.dll" For Input As 1 ' Otvori fajl pod nazivom Sys.dll kao 1 i to za citanje
Open Putanja & XmlFile For Output As 2 '' Otvori fajl pod nazivom stampatinefiskalnidokument.xm kao 2 i to za cpisanje
'Znaci imas otvorena dva fajla jedan za citanje koji je predhodno napravila procedura accessa ExportXML
While Not EOF(1) 'Pocetak while petlje koja cita file 1 tj. sys.dll
Line Input #1, Temp ' cita jedan red iz fajla i zapisuje u mem. variablu koju smo dimenzionisali pod nazivom temp
If Left(Temp, 9) = "<dataroot" Then ' ovo sam prije objasnio.
'Znaci ako se u Temp u redu slijeva nalazi zapis <dataroot> tada umjesto toga upisi dole ispod
Temp = "<Zahtjev xmlns:xsi=" & Chr(34) & "http://www.w3.org/...instance" & Chr(34) _
& " xmlns:xsd=" & Chr(34) & "http://www.w3.org/...Schema" & Chr(34) & ">"
End If
If Left(Temp, 11) = "</dataroot>" Then ' ovo sam isto objasnio
Temp = "</Zahtjev>"
End If
Print #2, Temp ' zapisi vrijednost temp u file 2
Wend ' Kraj petlje
Close #1 ' zatvori fajl 1
Close #2 'Zatvori fajl 2
End Function
kako vidis fajl 3 ne postoji i javit ce ti gresku.
Broj 1 i 2 su brojevi za otvorene fajlove
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.