Newsgroup: it.comp.appl.access
Titolo: Esportare report con pdfcreator

Buonasera a tutti,
qualcuno riesce a darmi una dritta per poter esportare un report con 
pdfcreator, attribuendo al nome del file (in pdf) il numero di ID del mio 
report in automatico senza doverlo digitare?
attualmente il comando che eseguo � il seguente:
            DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , 
acMenuVer70
            Forms!ORDINIFornitori.Refresh
            Dim stDocName1 As String
            Dim strFiltro1 As String
            stDocName1 = "ordine"
            strFiltro1 = "ID = Forms!ORDINIFornitori!ID"
            DoCmd.OpenReport stDocName1, acViewPreview, , strFiltro1
            Call creapdf("c:\", "pipponew", stDocName1)
            DoCmd.Close
il modulo che utilizzo � quello del sitocomune:
Public Function creapdf(percorsopdf As String, NomeFile As String, 
nomereport As String, Optional email As String)
'On Error GoTo Esci
'recupero la stampante predefinita
Dim tmpPrinter As String
tmpPrinter = GetDefaultPrinter1
'imposto come stampante predefinita la stampante pdfcreator
Dim stamp As String
stamp = DLookup("[stampante pdf]", "SetupParametri", "[ID] = 1")
SetDefaultPrinter1 (stamp)
    'Dim ValRit As Long
    Dim NomeFile1 As String
    Dim percorsoINI As String
    'Dim percorsopdf As String
'questo percorso � da impostare manualmente in base a dove si ha installato 
il file pdfcreator.ini
    percorsoINI = DLookup("[percorso ini]", "SetupParametri", "[ID] = 1") 
''''settare il percorso dove si trova il file pdfcreator
    'PercorsoPDF = "c:\" ''''' settare il percorso dove si vuole salvare il 
file
    NomeFile1 = "provailfilepdf" ''''settare il nome del file che si vuole 
assegnare
    Dim tmppercorsopdf As String
    Dim tmpuseautosave As String
    Dim tmpnomefile As String
    Dim tmpformatooutput As String
Dim formatooutput As String
formatooutput = DLookup("[formato output]", "SetupParametri", "[ID] = 1") 
''''settare il percorso dove si trova il file pdfcreator
MsgBox formatooutput
    'recupero le SetupParametri del file ini originarie
    tmppercorsopdf = ReadINIfile("Options", "AutosaveDirectory", 
percorsoINI) 'legge dal file
    tmpuseautosave = ReadINIfile("Options", "useAutosave", percorsoINI) 
'legge dal file
    tmpnomefile = ReadINIfile("Options", "AutosaveFilename", percorsoINI) 
'legge dal file
    tmpformatooutput = ReadINIfile("Options", "AutosaveFormat", percorsoINI) 
'legge dal file
    'setto le SetupParametri del file ini come servono per creare il 
documento
    x = WritePrivateProfileString("Options", "AutosaveDirectory", 
percorsopdf, percorsoINI) 'scrive nel file
    x = WritePrivateProfileString("Options", "AutosaveFilename", NomeFile, 
percorsoINI) 'scrive nel file
    x = WritePrivateProfileString("Options", "useautosave", "1", 
percorsoINI) 'scrive nel file
    x = WritePrivateProfileString("Options", "AutosaveFormat", 
formatooutput, percorsoINI) 'scrive nel file
   'stampo il report
    DoCmd.OpenReport nomereport, acViewNormal ''''settareilnomedelreport
    'ReSetDefaultPrinter1
    Sleep (2000)
    'Ripristino i valori predefiniti
    x = WritePrivateProfileString("Options", "AutosaveDirectory", 
tmppercorsopdf, percorsoINI) 'scrive nel file
    x = WritePrivateProfileString("Options", "AutosaveFilename", 
tmpnomefile, percorsoINI) 'scrive nel file
    x = WritePrivateProfileString("Options", "useautosave", tmpuseautosave, 
percorsoINI) 'scrive nel file
    x = WritePrivateProfileString("Options", "useautosave", 
tmpformatooutput, percorsoINI) 'scrive nel file
'ripristino la stampante predefinita
SetDefaultPrinter1 (tmpPrinter)
    Exit Function
'Esci:
'MsgBox Error
End Function
Tutto funziona ma il file che viene generato ora si chiama sempre 
Ordine.pdf,
vorrei poter riuscire a rinominarlo in automatico con il numero di ordine 
che visualizzo nell'anteprima del report;
 strFiltro1 = "ID = Forms!ORDINIFornitori!ID"
Grazie
Ciao a tutti
Chita

 'questo percorso è da impostare manualmente in base a dove si ha installato

Ciao,
quando mi è capitata una situazione analoga ho semplicemente
rinominato il file subito dopo la sua creazione con l'istruzione
Name "OldFile.pdf" as "NewFile.pdf"
Ciao
Alberto


---cut---
-- 
Ciao
Geppo 

.......ho detto na sciocchezza, quello � il nome del report.
-- 
Ciao
Geppo 

> Alberto
L'istruzione che citi dove la devo e/o posso inserire?
Mi dai degli input in pi�?
Grazie
Ciao
Chita

Ciao,
---------------------------------------------------------------------------
-----------------------------
  DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, ,
acMenuVer70
            Forms!ORDINIFornitori.Refresh
            Dim stDocName1 As String
            Dim strFiltro1 As String
            stDocName1 = "ordine"
            strFiltro1 = "ID = Forms!ORDINIFornitori!ID"
            DoCmd.OpenReport stDocName1, acViewPreview, , strFiltro1
            Call creapdf("c:\", "pipponew", stDocName1)
           Name "PippoNew.pdf" as strFiltro1 & ".pdf"     <-------  la
metti qui :
           DoCmd.Close
---------------------------------------------------------------------------
--------------------------
Il senso è che, dopo avere lanciato la stampa in pdf, vai a
rinominare
il file appena generato.
Ciao
Alberto

Alberto
I tuoi suggerimenti sono stati utili, ma ho fatto alcune modifiche, in
quanto il file pipponew.pdf  non si crea mai, ma viene creato sempre
ordine.pdf (prende il nome dall'etichetta del report) percui:
per dare tempo di creare il file ho inserito il codice che sotto riporto nel
pulsante di chiusura della maschera e non dopo:       call creapdf.........
        Dim stDocName4 As String
        stDocName4 = Forms!ORDINIFornitori!ID
        ' rinomino il file esportato in pdf con il numero dell'ordine
visualizzato in maschera
        Name "ORDINE.pdf" As stDocName4 & ".pdf"
Grazie mille Alberto per le dritte! Alla prossima!
Ciao!
Chita