Utilizzo una procedura (Modulo .bas) che ho trovato in Internet che prevede di posizionare due dll nella stessa Cartella in cui risiede il DB di Access nel quale sono costruiti i Report da convertire in PDF.
Purtroppo tutti i File sono troppo grandi, anche zippati, per allegarli.
Se vuoi posso mandarteli via Email. In questo caso dimmi come fare.
Posso però dirti come si chiamano:
La procedura è "modReportToPDF.bas"
Serve anche "clsDefaultPrinter.cls"
Le dll sono: "dynapdf.dll" e "StrStorage.dll"
Queste sono le note dell'autore:
'DEVELOPED AND TESTED UNDER MICROSOFT ACCESS 2000 through A2003
' Can be converted to A97 but you must modify the RelationSip window Blob
' structures to the A97 specific versions. You can find these structure declarations
' in the RelationShip Views project on my site.
'
'Copyright: Stephen Lebans - Lebans Holdings 1999 Ltd.
Richiamo la procedura in questo modo:
codice:
Private Sub StampaReportPDF()
On Error GoTo Errore_StampaReportPDF
Dim msAccess As Access.Application
Dim blRet As Boolean, NomeReport As String, NomeFilePDF As String
Dim DataTxt As String
Set msAccess = New Access.Application
msAccess.OpenCurrentDatabase ("C:\DB\Dati.mdb")
DataTxt =cStr(now())
NomeReport = "Report"
NomeFilePDF = "Report"_" & DataTxt
blRet = ConvertReportToPDF(NomeReport, vbNullString, "C:\ReportStampati\" & NomeFilePDF & ".pdf", False, True, 150, "", "", 0, 0, 0)
msAccess.CloseCurrentDatabase
Set msAccess = Nothing
Exit Sub
Errore_StampaReportPDF:
MsgBox "Errore nella Sub StampaReportPDF " & Err.Number & " - " & Err.Description
End Sub
Se Access è installato funziona benissimo. Ho provato ad installare il Runtime di Access su alcuni PC senza Access, ma non serve a niente: ci vuole proprio Access.
Siccome mi chiedono di evitare ogni possibile difficoltà o problema agli utilizzatori vorrei fare in modo che in assenza di Access il programma generi in alternativa automaticamente un File diverso dal PDF, ad esempio un file .htm (che ovviamente devo generare non partendo da un Report di Access).
Grazie per ogni aiuto.