Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190
iCentar » Racunari i oprema » Programirannje i baze podataka » Access » export u excel (redosled kao u reportu)
miro35 06.12.2012 09:25
Predmet:Re: export u excel (redosled kao u reportu)

Imaš i ovo:
PreuzmiIzvorni kôd (Text):
  1. Dim db As DAO.Database, rs As DAO.Recordset, str1Sql As QueryDef, strCrt As String, strDt As String
  2.     Set db = CurrentDb
  3.     Set rs = db.OpenRecordset("SELECT distinct fieldname FROM table (or query Probably without parameters) ORDER By fieldname;")
  4.         '**** fieldname, consider this to be how the records are grouped within the dataset.
  5.    
  6.     rs.MoveLast
  7.     rs.MoveFirst
  8.    
  9.     Do While Not rs.EOF
  10.         strCrt = rs.Fields(0)
  11.         Set str1Sql = db.CreateQueryDef("" & strCrt, "SELECT table.*  FROM table WHERE table.fieldname = '" & strCrt & "';")
  12.         DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "" & strCrt, "C:\filename " & ".xls", True
  13.         DoCmd.DeleteObject acQuery, "" & strCrt
  14.     rs.MoveNext
  15.     Loop
  16.    
  17.     rs.Close
  18.     Set rs = Nothing
  19.     Set db = Nothing
  20.  
  21.             ********************************
Ako želiš složit isto kao u svom report-u onda u ovoj funkciji je napisano ovo:ORDER By fieldname
Ti trebaš imati i u reportu neku kolonu po kojoj je to složeno da bi kad izvoziš u exel po toj koloni složio.

zxz 06.12.2012 19:09
Predmet:Re: export u excel (redosled kao u reportu)

Neznam jesil probao export u vord kako izgleda i dali ti pase.
Ako ti ne pase onda napravi u exelu templatu odnosno izformatiraj polja i popisi ono sto se ne mijenja pa zakaci.
Kod cu ti ja napraviti samo da vidim kako si zamislio a i da mi pomognes da uradis dio koji nije promjenjljiv da ne radim sve kodom..

xl_kid 07.12.2012 08:03
Predmet:Re: export u excel (redosled kao u reportu)

Evo je tabela u excelu koju popunjavaju. Promenjiva polja su: C5, C6, C7, C8, C9, C10. Zaglavlje je A1:R15. Kolona RB (Redni broj) je promenjiva i može imati i do 40 reda. B39 je tekstualni deo.

xl_kid 07.12.2012 08:05
Predmet:Re: export u excel (redosled kao u reportu)

Evo je tabela u excelu koju popunjavaju. Promenjiva polja su: C5, C6, C7, C8, C9, C10. Zaglavlje je A1:R15. Kolona RB (Redni broj) je promenjiva i može imati i do 40 reda. B39 je tekstualni deo.
Prilozi:
Pregled DA.zip (Velicina datoteke:7.63 KB)

zxz 07.12.2012 10:03
Predmet:Re: export u excel (redosled kao u reportu)

Veceras cu ti ovo uraditi najvjerovatnije.

xl_kid 07.12.2012 10:32
Predmet:Re: export u excel (redosled kao u reportu)

Hvala unapred

zxz 08.12.2012 13:09
Predmet:Re: export u excel (redosled kao u reportu)

Uf sinoc nisam uradio.
Imao sam goste.
Evo ovako.
Imas zakaceni file qb.dll.
To je u stvari tvoja templata u exelu.
na formi T_Pregled_Da_G napravi jedan komandni taster i daj mu ime exel
Na on klik tog tastera stavi ovaj kod:
PreuzmiIzvorni kôd (Visual Basic):
  1. Private Sub Exel_Click()
  2. Call ExelI
  3. End Sub

Ovaj kod ispod stavi u neki modul (Napr. module1).
PreuzmiIzvorni kôd (Visual Basic):
  1. Function ExelI()
  2. Dim Db As Database
  3. Dim Rs As Recordset
  4. Dim Temp
  5. Dim ExelO As Object
  6. Dim Celija As Object
  7. Dim Red As Integer, Kolona As Integer
  8. Dim I As Integer
  9.  
  10. On Error GoTo Greska:
  11. Set Db = CurrentDb()
  12. Temp = Db_Putanja
  13. Set Rs = Forms![T_Pregled_DA_G]![T_Pregled_DA_P subform].Form.RecordsetClone
  14. Set ExelO = CreateObject("excel.Application")
  15. FileCopy Temp & "qb.dll", Temp & "Pregled.xls"
  16. ExelO.Workbooks.Open (Temp & "Pregled.xls")
  17.  
  18. Red = 5
  19. Kolona = 3
  20. Set Celija = ExelO.Cells(Red, Kolona)
  21. Temp = Forms![T_Pregled_DA_G]![Referent_prodaje].Column(1)
  22. Celija.Value = Temp
  23. Red = 6
  24. Kolona = 3
  25. Set Celija = ExelO.Cells(Red, Kolona)
  26. Temp = Forms![T_Pregled_DA_G]![Datum]
  27. Celija.Value = Temp
  28. Red = 7
  29. Kolona = 3
  30. Set Celija = ExelO.Cells(Red, Kolona)
  31. Temp = Forms![T_Pregled_DA_G]![Pocetak_rada]
  32. Celija.Value = Temp
  33. Red = 8
  34. Kolona = 3
  35. Set Celija = ExelO.Cells(Red, Kolona)
  36. Temp = Forms![T_Pregled_DA_G]![Zavrsetak_rada]
  37. Celija.Value = Temp
  38. Red = 9
  39. Kolona = 3
  40. Set Celija = ExelO.Cells(Red, Kolona)
  41. Temp = Forms![T_Pregled_DA_G]![Dnevna_kilometraza]
  42. Celija.Value = Temp
  43. Red = 10
  44. Kolona = 3
  45. Set Celija = ExelO.Cells(Red, Kolona)
  46. Temp = Forms![T_Pregled_DA_G]![Broj_posjecenih_DM]
  47. Celija.Value = Temp
  48. Red = 15
  49. Rs.MoveFirst
  50. Do While Not Rs.EOF
  51. Red = Red + 1
  52.     For I = 0 To 17
  53.     Kolona = I + 1
  54.     Set Celija = ExelO.Cells(Red, Kolona)
  55.     Temp = Rs.Fields(I)
  56.     If Temp = True Then
  57.     Temp = "x"
  58.     ElseIf Temp = False Then
  59.     Temp = ""
  60.     End If
  61.     Celija.Value = Temp
  62.     Next I
  63. Rs.MoveNext
  64. Loop
  65. Red = 39
  66. Kolona = 2
  67. Set Celija = ExelO.Cells(Red, Kolona)
  68. Temp = Forms![T_Pregled_DA_G]![Napomena]
  69. Celija.Value = Temp
  70. ExelO.Visible = True
  71. Izlaz:
  72. Exit Function
  73. Greska:
  74. End Function
  75. Function Db_Putanja() As String
  76. '------------------------------------------------
  77. 'Ova funkcija pronalazi putanju postojee baze
  78. 'Autor funkcije ZXZ
  79. '------------------------------------------------
  80.    Dim Db As Database, Putanja As String
  81.    
  82.     On Error Resume Next
  83.     Set Db = DBEngine(0)(0)
  84.     Putanja = Db.Name
  85.     Do Until Right$(Putanja, 1) = "\"
  86.         Putanja = Left$(Putanja, Len(Putanja) - 1)
  87.     Loop
  88.  
  89.     Db_Putanja = Putanja
  90. End Function
Prilozi:
qb.zip (Velicina datoteke:7.68 KB)

xl_kid 10.12.2012 13:31
Predmet:Re: export u excel (redosled kao u reportu)

Ovo je super samo ima problem. Redni broj je uvek broj 2 a ako ima više redova od onih u tabeli upisuje ih ispod dodatka. U prilogu je tabela koju sam dobio.
Prilozi:
Pregled.zip (Velicina datoteke:8.63 KB)

zxz 10.12.2012 15:08
Predmet:Re: export u excel (redosled kao u reportu)

Uf redni broj nisam ni vidio.
Ja prepisao samo iz polja sa forme.
Dobro to se da zakrpati ali sta cemo sa ovom napomenom kada ima viska redova.
Ja sam mislio da je striktan broj redova a znaci nije.
Veceras pogledm to.

zxz 10.12.2012 21:50
Predmet:Re: export u excel (redosled kao u reportu)

Sta bi sa ovim brojem redova.
Ako nije striktan kako si napravio u temlati odnosno ako moze vise biti u odnosu na predvidjeni broj onda valja i polja formatirati (obojati) te pomaknuti napomenu odnosno i nju kodom uraditi.
Ovo redni broj sam uradio ali necu kaciti dok ne rijesimo sve.