Interesuje me da li je moguce praviti izvestaj iz access-ove baze u excel tabelu?
Kroz neku formu/masku odabrati vrstu izvestaja i kreirati je kao excelb tabelu, koja se moze snimiti, odstampati...
Postoji više opcija. Određeni stepen automatizacije može se postići korišćenjem OLE konektivnosti i VBA koda. Primer uvezenih izveštaja iz Accessa, ali u ovom slučaju u Word što je kompatibilno sa Excelom, možeš videti u tekstu Izveštaji u Word-u iz Access-a.
Dim rsHeading As Recordset
Dim rsDetails As Recordset
Dim row As Integer
Dim xlApp As Excel.Application
Dim xlWb As Excel.Workbook
Dim xlWs As Excel.Worksheet
Dim strPath As String
strPath = "d:\My Documents \" ovdje unesi direktorij gdje se nalazi Excel fajl
Set db = CurrentDb()
Set rsHeading = db.OpenRecordset("select * from TABELA/QUERY") SQL upit
row = 6 pocetni red u Excel fajlu
If rsHeading.RecordCount > 0 Then
Set xlApp = CreateObject("excel.application")
Set xlWb = xlApp.Workbooks.Open(strPath & "\FAJL.xls") ime Excel Fajla
Set xlWs = xlWb.Sheets("Sheet1") Sheet u Excel fajlu
Evo upload-ovao sam jednostavan praktican primjer Exporta izvjestaja u Excel. Naravno ovaj primjer se moze jos doraditi ali opet sve zavisi od potrebe...
Ovo je i meni pomoglo puno, hvala. Samo jel ko zna kako mogu koristiti ovaj isti kod al da snima excel fajl automatski pod drugim imenom po mogucnosti ime-datum.xsl na odredjenu lokaciju.
Evo ti moj kompletni kod s kojim sam prepisivao iz tablice u excel datoteku.
Napominjem da si moras prvo iskreirati PRAZNA.XSL na folderu iz kojeg startas
svoj program.
Vjerojatno se da i to srediti , meni se nije dalo.
If Len(dput) < 3 Then
MsgBox "NE POSTOJI EXCEL TABLICA " + PPopen + " MORATE JE KREIRATI"
Exit Sub
End If
Set objexcel = CreateObject("Excel.Application")
objexcel.Workbooks.Open (PPopen)
objexcel.Application.Visible = True
Dim dato11 As Database
Dim rek11 As Recordset
Set dato11 = CurrentDb
Dim sqlupit11 As String
sqlupit11 = "select * from finstatement"
Set rek11 = dato11.OpenRecordset(sqlupit11)
Dim dato2 As Database
Dim rek2 As Recordset
Set dato2 = CurrentDb
Dim sqlupit2 As String
sqlupit2 = "select * from finitem where statementid=" & statid
Set rek2 = dato2.OpenRecordset(sqlupit2)
red = 10
Do While Not rek2.EOF
objexcel.Cells(red, kolona).Value = "'" & rek2.Fields("accountid").Value
objexcel.Cells(red, kolona + 1).Value = rek2.Fields("Accountvalue").Value
red = red + 1
rek2.MoveNext
Loop
rek2.Close
Set dato2 = Nothing
kako ja vidim ovdje ima dosta dodatnog koda koji me sbunjuje, meni treba da dodam na vec postojeci gornji kod da snima na odredjenu lokaciju sa datumom snimanja tj =today()
Probao sam prilagoditi ovo tvoje ali jos sam slab sa vba codom.