Imam tabelu sa nekoliko redova. Treba da za svaki zapis kreiram poseban pdf fajl (da ga nazovem u formatu BrojPoziva& “-“&PIB i da ga smestim u tekući folder. Probao sam sa nekim kodom da to izvedem, ali nešto neće. Da li bi neko mogao da pomogne, s obzirom da u stvarnosti postoji nekoliko stotina redova. Hvala.
Kreiranje masovnih PDF fajlova za svaki zapis
Zaključano
Zakačeno
izmenjeno 1 put, poslednji put bokinet 20.11.2021. u 14:07
Izmene poruke
- bokinet20.11.2021. u 14:07zapis iz teksta poruke
MailMerge moze da posluzi ali moze i na druge nacine sve zavisi kako treba da izgleda taj pdf sto se tice podataka koji se generisu.
Brzinski na prvu u kodu je problem polje PIB koje se koristi za naziv file jer ga nema u recordsetu koji je otvoren pa je pozljeno dodati i to polje u upit ili povuci sva polja.
Evo celog koda za Command Button koji je ispravljen malo da bi radilo.
Brzinski na prvu u kodu je problem polje PIB koje se koristi za naziv file jer ga nema u recordsetu koji je otvoren pa je pozljeno dodati i to polje u upit ili povuci sva polja.
Code:
'Set rs = CurrentDb.OpenRecordset("SELECT BrojPoziva FROM PoziviKT")
Set rs = CurrentDb.OpenRecordset("SELECT * FROM PoziviKT")
'Set rs = CurrentDb.OpenRecordset("SELECT BrojPoziva FROM PoziviKT")
Set rs = CurrentDb.OpenRecordset("SELECT * FROM PoziviKT")
Evo celog koda za Command Button koji je ispravljen malo da bi radilo.
Code:
Dim rs As DAO.Recordset
Dim sFolder As String
Dim sFile As String
On Error GoTo Error_Handler
sFolder = Application.CurrentProject.Path & "\"
'Set rs = CurrentDb.OpenRecordset("SELECT BrojPoziva FROM PoziviKT")
Set rs = CurrentDb.OpenRecordset("SELECT * FROM PoziviKT")
With rs
.MoveFirst
Do While Not .EOF
sFile = Nz(![BrojPoziva], "") & "-" & Nz(![PIB], "") & ".pdf"
sFile = sFolder & sFile
'DoCmd.OpenReport "PoziviKT", acViewReport, , "[BrojPoziva]=" & ![BrojPoziva]
DoCmd.OpenReport "PoziviKT", acViewReport, , "[BrojPoziva]='" & ![BrojPoziva] & "'", acHidden
DoCmd.OutputTo acOutputReport, "PoziviKT", acFormatPDF, OutputFile:=sFile, OutputQuality:=acExportQualityPrint
DoCmd.Close acReport, "PoziviKT"
DoEvents
.MoveNext
Loop
End With
Application.FollowHyperlink sFolder
Error_Handler_Exit:
On Error Resume Next
If Not rs Is Nothing Then
rs.Close
Set rs = Nothing
End If
Exit Sub
Error_Handler:
If Err.Number <> 2501 Then
MsgBox "The following error has occured" & vbCrLf & vbCrLf & _
"Error Number: " & Err.Number & vbCrLf & _
"Error Source: cmd_GenPDFs_Click" & vbCrLf & _
"Error Description: " & Err.Description & _
Switch(Erl = 0, "", Erl <> 0, vbCrLf & "Line No: " & Erl) _
, vbOKOnly + vbCritical, "An Error has Occured!"
End If
Resume Error_Handler_Exit
Dim rs As DAO.Recordset
Dim sFolder As String
Dim sFile As String
On Error GoTo Error_Handler
sFolder = Application.CurrentProject.Path & "\"
'Set rs = CurrentDb.OpenRecordset("SELECT BrojPoziva FROM PoziviKT")
Set rs = CurrentDb.OpenRecordset("SELECT * FROM PoziviKT")
With rs
.MoveFirst
Do While Not .EOF
sFile = Nz(![BrojPoziva], "") & "-" & Nz(![PIB], "") & ".pdf"
sFile = sFolder & sFile
'DoCmd.OpenReport "PoziviKT", acViewReport, , "[BrojPoziva]=" & ![BrojPoziva]
DoCmd.OpenReport "PoziviKT", acViewReport, , "[BrojPoziva]='" & ![BrojPoziva] & "'", acHidden
DoCmd.OutputTo acOutputReport, "PoziviKT", acFormatPDF, OutputFile:=sFile, OutputQuality:=acExportQualityPrint
DoCmd.Close acReport, "PoziviKT"
DoEvents
.MoveNext
Loop
End With
Application.FollowHyperlink sFolder
Error_Handler_Exit:
On Error Resume Next
If Not rs Is Nothing Then
rs.Close
Set rs = Nothing
End If
Exit Sub
Error_Handler:
If Err.Number <> 2501 Then
MsgBox "The following error has occured" & vbCrLf & vbCrLf & _
"Error Number: " & Err.Number & vbCrLf & _
"Error Source: cmd_GenPDFs_Click" & vbCrLf & _
"Error Description: " & Err.Description & _
Switch(Erl = 0, "", Erl <> 0, vbCrLf & "Line No: " & Erl) _
, vbOKOnly + vbCritical, "An Error has Occured!"
End If
Resume Error_Handler_Exit
Boki,
Care, majstore, pre svega ljudino. Hvala ti do neba. Ako ima neka knjiga utisaka, negde da te pohvalim, javi.
Care, majstore, pre svega ljudino. Hvala ti do neba. Ako ima neka knjiga utisaka, negde da te pohvalim, javi.
Ziveli i svako dobro.
p.s. ubaciti podrsku da se proverava da li file vec postoji pa ako postoji da se dodaju sufiksi na kraju file-a kao sto recimo rade web browser-i prilikom preuzimanja file-ova ako je isti vec preuzet posto moze da se desi u zavisnosti od kozistentnosti i tacnosti podataka da nema jedna od 2 vrednosti na osnovu koje se vrsi generisanje naziva file-a pa ako je vise takvih zapisa sa istim nazivom moze da bude problem oko pdf file-ova na izlazu jer ce u tom slucaju biti verovatno prepisani pa tako da umesto da bude recimo 5 file-ova onda bude 1 ako ni jedan od tih 5 nema pib/broj ili su iste vrednosti.
Takodje, ne bi bilo lose da se broj formatira sa vodecim nulama ispred. Pa recimo ako se ocekuje da ce biti najvise 10,000 takvih pdf-ova onda bude naziv file 00001-<pib>.pdf ... 09999-<pib>.pdf ... 10000-<pib>.pdf
p.s. ubaciti podrsku da se proverava da li file vec postoji pa ako postoji da se dodaju sufiksi na kraju file-a kao sto recimo rade web browser-i prilikom preuzimanja file-ova ako je isti vec preuzet posto moze da se desi u zavisnosti od kozistentnosti i tacnosti podataka da nema jedna od 2 vrednosti na osnovu koje se vrsi generisanje naziva file-a pa ako je vise takvih zapisa sa istim nazivom moze da bude problem oko pdf file-ova na izlazu jer ce u tom slucaju biti verovatno prepisani pa tako da umesto da bude recimo 5 file-ova onda bude 1 ako ni jedan od tih 5 nema pib/broj ili su iste vrednosti.
Takodje, ne bi bilo lose da se broj formatira sa vodecim nulama ispred. Pa recimo ako se ocekuje da ce biti najvise 10,000 takvih pdf-ova onda bude naziv file 00001-<pib>.pdf ... 09999-<pib>.pdf ... 10000-<pib>.pdf
Boki,
Razmišljanje je na mestu. Međutim, brojevi poziva su unikatni i vezani su za tekuću godinu, tako da se može samo dodati godina na kraju i problem je rešen. Bitno je da ja imam kôd koji vrši funkciju. Sve ostalo su varijante i nadogradnja.
Razmišljanje je na mestu. Međutim, brojevi poziva su unikatni i vezani su za tekuću godinu, tako da se može samo dodati godina na kraju i problem je rešen. Bitno je da ja imam kôd koji vrši funkciju. Sve ostalo su varijante i nadogradnja.
Dobilo bi se naziv file-a jednake duzine sto je lakse za navigaciju kroz file sistem pre svega.
Ako je za godinu onda moze i format godina[4]-rb[0:5]-pib[9]
Primer:
2021-00001-103920327.pdf
2021-00010-103920327.pdf
2021-00100-103920327.pdf
2021-01000-103920327.pdf
2021-10000-103920327.pdf
ili
202100001-103920327.pdf
202100010-103920327.pdf
202100100-103920327.pdf
202101000-103920327.pdf
202110000-103920327.pdf
Pa tako i sortiranje bi bilo lakse isto kroz file sistem sto se tice i same godine jer bi recimo sve sto je 2021 bilo redom a potom dalje 2022 odnosno pre '21, bili file-ovi za 2020.