Prikazi cijelu temu 20.11.2021 15:57
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Lokacija:Tuzla


Predmet:Re:XML i access 2003
Gornj primjer je za dvije tabele a ti imas 3.
evo ti tvoja funkcija zapisi prepravljena

PreuzmiIzvorni kôd (Visual Basic):
  1. Function Zapisxml()
  2. Dim Tabele(1 To 3) As String ' dimenzionisane dvije memorijske pod nazivom tabele
  3. Dim Putanja As String
  4. Dim XmlFile As String
  5. Dim Temp As String
  6.  
  7. Tabele(1) = "ZAGLAVLJE" ' ?osnovna tabela ' Upisano u memrijsku Tabele(1)  vrijednost "Zahtjev"
  8. Tabele(2) = "OBAVEZA"  ' Pridodata tabela--Upis u drugu memorijsku
  9. Tabele(3) = "DL1"  ' Pridodata tabela--Upis u drugu memorijsku
  10. Putanja = "d:\_Forum\Obrada\slike\" 'Putanja zapisa bez imena filea Upis u mem. putanja
  11. XmlFile = DMin("JIB", "Radnja") & ".xml" ' Ime xml fajla Upis u mem xmlfile
  12.  
  13.  
  14. 'export u xml fajl pod nazivom sys.dll na putanji iz memorijske putanja
  15.    Set objOtherTbls = Application.CreateAdditionalData
  16.     objOtherTbls.Add Tabele(2)
  17.     objOtherTbls.Add Tabele(3)
  18.  
  19. Application.ExportXML acExportTable, Tabele(1), Putanja & "sys.dll", , , , acUTF8, acPersistReportML, , objOtherTbls
  20.  
  21. Close #1 'Zatvori sekvencialni fajl 1
  22. Close #2 'Zatvori file 2
  23. '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
  24. 'Inace kada se zavrsi i istestira procedura moze se i brisati.
  25.  
  26. Open Putanja & "sys.dll" For Input As 1 ' Otvori fajl pod nazivom Sys.dll kao 1 i to za citanje
  27. Open Putanja & XmlFile For Output As 2 '' Otvori fajl pod nazivom stampatinefiskalnidokument.xm kao 2 i to za cpisanje
  28. 'Znaci imas otvorena dva fajla jedan za citanje koji je predhodno napravila procedura accessa ExportXML
  29.    While Not EOF(1) 'Pocetak while petlje koja cita file 1 tj. sys.dll
  30.    Line Input #1, Temp ' cita jedan red iz fajla i zapisuje u mem. variablu koju smo dimenzionisali pod nazivom temp
  31.        If Left(Temp, 9) = "<dataroot" Then ' ovo sam prije objasnio.
  32.        'Znaci ako se u Temp u redu slijeva nalazi zapis <dataroot> tada umjesto toga upisi dole ispod
  33.        Temp = "<PRIJAVA_1002>"
  34.         End If
  35.         If Left(Temp, 11) = "</dataroot>" Then ' ovo sam isto objasnio
  36.        Temp = "</PRIJAVA_1002>"
  37.         End If
  38.         If Left(Temp, 35) = "<POSLODAVAC_KTI>0</POSLODAVAC_KTI>" Then
  39.         Temp = "<POSLODAVAC_KTI/>"
  40.         End If
  41.         If Left(Temp, 35) = "<POSLODAVAC_KTI>1</POSLODAVAC_KTI>" Then
  42.         End If
  43.         If Left(Temp, 80) = "<NACIN_OBAVLJANJA_SDJELATNOSTI>0</NACIN_OBAVLJANJA_SDJELATNOSTI>" Then
  44.         Temp = "<NACIN_OBAVLJANJA_SDJELATNOSTI/>"
  45.         End If
  46.         If Left(Temp, 35) = "<PO_NALOGU_INSPEKTORA>0</PO_NALOGU_INSPEKTORA>" Then
  47.         Temp = "<PO_NALOGU_INSPEKTORA/>"
  48.         End If
  49.     Print #2, Temp ' zapisi vrijednost temp u file 2
  50.    Wend ' Kraj petlje
  51. Close #1 ' zatvori fajl 1
  52. Close #2 'Zatvori fajl 2
  53. End Function

Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.