Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

esportare report in pdf

109 views
Skip to first unread message

Remigio

unread,
Jan 28, 2015, 6:51:24 AM1/28/15
to
Ciao,
sul mio db fatto con Access 2003 vorrei avere la possibilità di salvare un report in formato pdf via vba in modo da poterlo successivamente inviare per email.
Ho provato a usare la soluzione del sitocomune 4021 "esportare un report in un file pdf" ma pur avendo installato il pdfcreator non trovo il file pdfcreator.ini di cui si parla nell'argomento.
Potreste darmi una mano per favore a capire se questo modulo è utilizzabile o mi suggerite un'altra soluzione analoga?
Grazie infinite.

Remigio

pfm

unread,
Jan 28, 2015, 9:19:54 AM1/28/15
to
una tecnica che anni fa utilizzavo era quella di salvarmi da codice la stampante predefinita
modificare la stampante predefinita e impostare la stampante pdf come predefinita
stampa
rimetti tutto come prima

pfm

unread,
Jan 28, 2015, 9:31:12 AM1/28/15
to
Il giorno mercoledì 28 gennaio 2015 12:51:24 UTC+1, Remigio ha scritto:
ciao aggiungo

con PDFCreator (http://sourceforge.net/projects/pdfcreator/) e durante
l'installazione è possibile scaricare COM samples, viene quindi creata anche la cartella COM all'interno della quale
diversi esempi per linguaggi differenti ... tra questi MS Office questo l'indirizzo sul mio disco e' C:\Programmi\PDFCreator\COM

Remigio

unread,
Jan 28, 2015, 10:40:59 AM1/28/15
to
Ciao Pfm,
se ho ben capito devo copiare il codice contenuto nel file modPDFCreatorAccess dentro un modulo di access e settare le variabili (nome report, destinazione, ecc) all'interno del codice, giusto?
Poi invoco questo modulo via vba da un controllo, no?
Ti ringrazio molto.
Un saluto

Remigio

Bruno Campanini

unread,
Jan 28, 2015, 8:38:52 PM1/28/15
to
It happens that Remigio formulated :
Questo in Access 2013 crea un file PDF,
in Excel 2003 probabilmente no; prova.
========================================
Private Sub CreaPDF_Click()
On Error GoTo Err_Handler
DoCmd.OutputTo _
Objecttype:=acOutputReport, _
ObjectName:="EReport1", _
OutputFormat:=acFormatPDF, _
OutputFile:="D:\Transizione\Fattura_" & Year(Date) & ".PDF", _
AutoStart:=True, _
OutputQuality:=acExportQualityPrint

Exit_Sub:
Exit Sub

Err_Handler:
MsgBox Err.Number & vbCrLf & Err.Description
Resume Exit_Sub

End Sub
===================================

Bruno

Alessandro

unread,
Jan 29, 2015, 5:47:43 AM1/29/15
to
Il giorno mercoledì 28 gennaio 2015 12:51:24 UTC+1, Remigio ha scritto:
Googolando un po' ho trovato questo articolo , per access 2003 dovrebbe funzionare.

http://www.granite.ab.ca/access/pdffiles.htm

Saluti,
Alessandro

Remigio

unread,
Jan 29, 2015, 6:14:14 AM1/29/15
to
Grazie Bruno,
ma io ho access 2003
Un saluto

RobertoA

unread,
Jan 30, 2015, 1:55:16 AM1/30/15
to
Prova a cercare 'pdf lebans'
E' una libreria molto usata che ti permette di ottenere il pdf da un
report qualsiasi

Remigio

unread,
Jan 30, 2015, 9:31:06 AM1/30/15
to
...
Ciao Roberto,
la soluzione di Leban's l'ho già provata, ma su win7 non funziona bene, almeno nel mio caso.
Penso che utilizzando il codice di esempio di pdfcreator contenuto nel file modPDFCreatorAccess della cartella COM di pdfcreator dovrebbe andare meglio, solo che non capisco come usarlo.
In VBA ho importato le librerie di pdfcreator, ma il codice dove lo copio? In un modulo o sull'evento del controllo? E per lanciare poi il modulo quale funzione chiamo?
Ho provato a copiare il codice (di seguito) in un modulo, poi nell'evento "Su click" di un pulsante ho messo "call PrintRep", ma viene fuori solo un errore di compilazione.
Potreste aiutarmi a capire come usarlo per favore?
Grazie
_______________________________

Attribute VB_Name = "modPDFCreatorAccess"
Option Compare Database
Option Explicit

' Add a reference to PDFCreator

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Const maxTime = 10 ' in seconds
Private Const sleepTime = 250 ' in milliseconds

Public Function Start()
PrintRep "Report1"
End Function

Public Sub PrintRep(RepName As String)
Dim PDFCreator1 As PDFCreator.clsPDFCreator, DefaultPrinter As String, c As Long, _
OutputFilename As String
Set PDFCreator1 = New clsPDFCreator
With PDFCreator1
.cStart "/NoProcessingAtStartup"
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = "C:\"
.cOption("AutosaveFilename") = RepName
.cOption("AutosaveFormat") = 0 ' 0 = PDF
DefaultPrinter = .cDefaultPrinter
.cDefaultPrinter = "PDFCreator"
.cClearCache
DoCmd.OpenReport RepName, acViewNormal
.cPrinterStop = False
End With

c = 0

Do While (PDFCreator1.cOutputFilename = "") And (c < (maxTime * 1000 / sleepTime))
c = c + 1
Sleep 200
Loop

OutputFilename = PDFCreator1.cOutputFilename

With PDFCreator1
.cDefaultPrinter = DefaultPrinter
Sleep 200
.cClose
End With

Sleep 2000 ' Wait until PDFCreator is removed from memory

If OutputFilename = "" Then
MsgBox "Creating pdf file." & vbCrLf & vbCrLf & _
"An error is occured: Time is up!", vbExclamation + vbSystemModal
End If

End Sub

______________________________

Remigio

BFS

unread,
Jan 30, 2015, 9:49:02 AM1/30/15
to
+1
inossidabili quelle due dll

Remigio

unread,
Jan 30, 2015, 10:11:06 AM1/30/15
to

> +1
> inossidabili quelle due dll

Ciao,
io non sono molto esperto in vba, per questo vi chiedo aiuto, forse le mie domande sono banali, ma vi assicuro che ho speso diverso tempo a fare delle prove.
Con la soluzione di Leban's viene generato un pdf che viene aperto e visualizzato, ma non capisco se si può salvare come file in modo automatico e se si può personalizzare la path di destinazione.
Ho cercato dappertutto.
Mi dareste una mano per favore?
Grazie

Remigio

BFS

unread,
Jan 30, 2015, 10:53:33 AM1/30/15
to
Il 30/01/2015 16:11, Remigio ha scritto:
>
>> +1
>> inossidabili quelle due dll
>
> Ciao,
Ho cercato dappertutto.
> Mi dareste una mano per favore?
> Grazie
>
> Remigio
>

certo è uno dei parametri della funzione
Public Function ConvertReportToPDF( _
Optional RptName As String = "", _
Optional SnapshotName As String = "", _
Optional OutputPDFname As String = "", _
Optional ShowSaveFileDialog As Boolean = False, _
Optional StartPDFViewer As Boolean = True, _
Optional CompressionLevel As Long = 0, _
Optional PasswordOwner As String = "", _
Optional PasswordOpen As String = "", _
Optional PasswordRestrictions As Long = 0, _
Optional PDFNoFontEmbedding As Long = 0 _
) As Boolean



nel dettaglio Optional OutputPDFname As String = ""
passa alla funzione la posizione dove vuoi che il file venga salvato


ciao!


RobertoA

unread,
Jan 30, 2015, 2:01:15 PM1/30/15
to
Prova con:
---------------------------------------
blRet = ConvertReportToPDF(nome_report, vbNullString, nome_file, False,
False, 0, "", "", 0, 0)
---------------------------------------
dove 'ConvertReportToPDF' e' ovviamente la funzione fornita da Lebans
nei suoi esempi



0 new messages