Newsgroup: it.comp.appl.access
Titolo: Creare Pdf allegarlo ad una mail con pdfcreator

ciao ragazzi ho trovato questo codice su questo gruppo
Option Compare Database
Option Explicit
' Aggiungi il riferimento a 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 Start1()
 PrintRep "NomeMioReport"
End Function
Public Sub PrintRep(RepName As String)
 Dim PDFCreator1 As PDFCreator.clsPDFCreator, DefaultPrinter As
String, c As Long, OutputFilename As String
 Dim DirSalvataggio As String
 Dim NomeFile As String
 Dim MailDestinatario As String
 DirSalvataggio = "c:\"
 NomeFile = "prova"
 MailDestinatario = "IndirizzoEmailAlQualeSpedire"
 Set PDFCreator1 = New clsPDFCreator
 With PDFCreator1
  .cStart "/NoProcessingAtStartup"
  .cOption("UseAutosave") = 1
  .cOption("UseAutosaveDirectory") = 1
  .cOption("AutosaveDirectory") = DirSalvataggio
    .cOption("AutosaveFilename") = NomeFile
    .cOption("AutosaveFormat") = 0
 ' 0 = PDF
  DefaultPrinter = .cDefaultPrinter
  .cDefaultPrinter = "PDFCreator"
  .cClearCache
 DoCmd.OpenReport "NomeMioReport"
  .cPrinterStop = False
 End With
 c = 0
 Do While (PDFCreator1.cOutputFilename = "") And (c < (maxTime *
1000 / sleepTime))
  c = c + 1
  Sleep 200
 Loop
 OutputFilename = PDFCreator1.cOutputFilename
 'Invia MAIL con allegato
 With PDFCreator1
  .cDefaultPrinter = DefaultPrinter
  Sleep 200
  .cSendMail OutputFilename, MailDestinatario
  .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
End Sub
ma non riesco a capire come si fa ad usarlo, io ho creto un report "
NomeMioReport"
e nella maschera ho creato un bottone ma come faccio a creare l'evento
x avviare il codice ?
vi ringrazio per l'aiuto.


dovrebbe essere call PrintRep(NomeMioReport)

 ha scritto nel messaggio 
news:e7a149d8-22a1-489b...@22g2000yqr.googlegroups.com...

Il codice stampa solamente il report in pdf...usando le librerie di 
PDFCreator, ti consiglio di usare allora il metodo di lebans....
Dopo hai due possibili� o usi il metodo sendobject, oppure per una cosa pi� 
strutturata usi le librerie MAPI.
Ciao
-- 
Roberto da Parma 

e quale sarebbe ilmetoto di lebans ?

e quale sarebbe ilmetoto di lebans ?
www.lebans.com
 

 
www.lebans.com
ho provato ad eseguire il file di access dopo aver spostato le dll
nella system32 ma da errore "il formato definito per l'output
dell'oggetto corrente non è disponibile "
cosa devo fare ?
Qualcuno di voi sa dove posso trovare un codice gia fatto che converte
in pdf e invia la mail ?

 
www.lebans.com
ho provato ad eseguire il file di access dopo aver spostato le dll
nella system32 ma da errore "il formato definito per l'output
dell'oggetto corrente non � disponibile "
cosa devo fare ?
Qualcuno di voi sa dove posso trovare un codice gia fatto che converte
in pdf e invia la mail ?
Risposta:
C'� un problema di traduzione del formato snapshot
vedi i milioni di post precedenti 

leggendo altri forum ho trovato il codice suggerito x creare un pdf
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
che è parte di quello postato in precedenza, tuttavia non ho capito
come devo fare ora a farlo funzionare o a richiamarlo x farlo girare
qualcuno gentilemente potrebbe guidarmi passo passo in modo che
leggendo il codice imparo a conoscere come funziona.
Vi ringrazio per la disponibilità


Se ti posso dare un consiglio, prima di utilizzare codice di questo 
tipo, copiaincollando, e avendo ovviamente problemi, dovresti prima
sfruttare un po' la guida in linea e le creazioni guidate, e poi andare
oltre.
Ciao

 ha scritto nel messaggio 
news:4b54c747$0$1111$4faf...@reader4.news.tin.it...

GiacoXp vedo che comunque mica l'hai seguito il consiglio...
La strada che stai prendendo al momento non ti si addice se non hai 
dimestichezza con VBA ed usare riferimenti a librerie esterne non � sempre 
la cosa pi� conveniente, anzi appena posso io non le uso.
Per spiegarti passo passo credo ci vorrebbero ore...non per carit� perch� tu 
non sia all'altezza di capire ma piuttosto per gli evidenti problemi di 
comunicabilit�...fermo e considerato che da come sei partito prima vorresti 
risolvere il problema e poi (se c'� tempo) capire come funziona.... prova a 
seguire la strada che ti � stata consigliata:
1. non devi installare nulla (con probabili problemi al codice se le 
versioni cambiano)
2. non hai riferimenti a librerie esterne
3. devi copiare due file nella cartella dove risiede il tuo db
4. scrivere una riga di codice (copia/incolla) dove sostituire il nome del 
report creato
5. per allegarlo in email recuperi il percorso del file e usi il metodo 
sendobject (se non vuoi fare ricerche sul metodo MAPI)
Poi
Vai sul sito di lebans ti scarichi I due file (reporttoPDF... e le dll 
aggiornate)
Ti guardi come funziona il codice dall'mdb allegato...provi se va...se non 
va...
Vedi di aggiornare access all'sp3 ed eventuali hotfix
Riprovi....se non va....
Posta l'errore...
