Newsgroup: it.comp.appl.access
Titolo: Invio di pdf in e mail

Salve a tutti espongo subito il problema, aiuto
devo inviare report in allegato alle e mail in formato PDF il cui inidizzo 
del destinatario è scritto in un campo della tabella rubrica,
es.
in visualizzazione maschera "fattura" dove compaiono i dati del destinatario 
e l'intera fattura vorrei inserire un pulsante che invia il report della 
stessa fattura traformadolo in PDF allegandolo ad una mail completa del 
destinatario, senza invarla del tutto, basta aperta per poter aggiungere del 
testo
non so se sono riuscito a spiegarmi bene
grazie 

 testo
Devi usare gli esempi che trovi sul sito comune e il codice che trovi 
sul sito di lebans per esportare un report in pdf.
Fatto questo, al momento di passare il campo body alla funzione, apri 
una mschera settata a pop-up in cui scrivi il testo o annulli la procedura.
Il percorso dell'allegato lo devi passare tramite vba o commond dialog
Questo almeno è quello che mi viene in mente

 Questo almeno č quello che mi viene in mente 

 Grazie
Io ho fatto esattamente quello che vuoi fare tu utilizzando PDF cerator 
versione 0.9.2.
http://sourceforge.net/projects/pdfcreator/
Confermando la fattura viene salvata in PDF in una cartella da te 
precedentemente specificata,
poi se il cliente ha l' e.mail ti apre la finestra di invio del tuo 
programma di posta con allegato il file PDF.
Naturalmente bisogna scrivere un po' di codice!
Se vuoi provare prima devi installare PDF creator poi si parla del codice.
Ciao
Maurizio S. 

 ha scritto nel messaggio 
news:eja9rv$a18$1...@tdi.cu.mi.it...



ok,
Prima di tutto è meglio se rispondi alla fine del messaggio non all'inizio
altrimenti qualcuno potrebbe cominciare a parlare di regole dell' NG.
Nel tuo DB vai su  moduli ed aprine uno vuoto nuovo.
Dal menù Srumenti, Riferimenti seleziona PDFcreator
(PDFcreator Deve essere versione 0.8.1 RC9 o successiva)
Nel corpo del tuo Modulo copia il seguente codice (tra '******).
Naturalmente al posto di FattuaReport inserisci il nome del tuo report
e dove c'è scritto 'INSERISCI LE TUE VARIABILI
devi fare riferimento alle tue variabili.
'*************
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 Start()
 PrintRep "FattuaReport"
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
 'INSERISCI LE TUE VARIABILI
 DirSalvataggio = "C:\miacartella"     'Directory di slavataggio
 NomeFile = "Fatt. n." & Form_Fatture.NumFatt    'Nome con il quale creare 
il File
 MailDestinatario = Form_Fatture.email
 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 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
 '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
'******************
Fai attenzione che quì non ho gestito l'assenza dell'indirizzo e.mail
Slava il modulo con il nome che vuoi
Nella maschera sull'evento clik del tuo pulsante di conferma inserisci
call Start
Prova e fammi sapere
Buon lavoro
Ciao 

Allora ho seguito i passaggi indicati e cambiando la dir. di destinazione e
"MailDestinatario = Form_Fatture.email" con MailDestinatario = Form_Fattura 
DdT.E mail.
non da errore solo che non trova la macro "call Start"
Tutta via l'idirizzo e_mail si trova nella rubrica la quale è collegata alla 
fattura per evitare l'inserimento dei dati tutte le volte.
Ancora grazie


Davo per sottointeso non devi inserire la riga come macro,
Su Clic seleziona Ruotine Evento ....
o Generatore di Codice
Ti si apre la finestra dove inserisci il codice VBA
Private Sub Comando5_Click()
    call Start
End Sub
Se hai fatto copia-incolla del codice precedente stai attento che alcune 
righe più lunghe non siano andate a capo automaticamente.(come fara 
sicuramente questa righa)
Devi sostituire anche:
FattuaReport   -  con il nome del tuo report
e
Form_Fatture.NumFatt - con il controllo del numero fattura

 Private Sub Comando92_Click()
Cosè questa riga ??????
Hai aggiunto il codice all'azione su Click di un pulsante o di un altro 
comando (Comando92)
Devi iserire il codice in un nuovo modulo
Finestra principale del Database
Inserisci
Modulo
(quando lo salvi ti comapare nella scheda moduli della finestra principale 
del database)
Le prime due righe
    Option Compare Database
    Option Explicit
compaiono in automatico da sole

Attento nella riga del nome del File, è sicuramente andata a capo
Poi probabilmente può crearti qualche problema il nome del controllo:
  Form_FatturaDdT.E mail
sia per il punto che per lo spazio.

 definita
1 non so far partire il codice nel modulo creato (ho provato a farlo con una
macro e sembra essere richiamato)
2 l'errore apre il modulo e evidenzia:
   "Public Sub PrintRep(RepName As String)"   in giallo
  il tratto  "Form_FatturaDdT."  della riga  "Form_FatturaDdT.IDFatturaDdT "
in grigio
qualiasi cosa metto al posto di : "Form_FatturaDdT" fosse anch
eehgqefgqpeifgpi lo evidenzia con erore in grigio
cosa faccio?
Forse non mi è chiaro quali sono i campi da cambiare in queste righe
 NomeFile = "Fatt. n." & Form_Fatture.NumFatt    'Nome con il quale creare
il File
 MailDestinatario = Form_Fatture.email
Garzie..


Prova a sostituire queste righe:
NomeFile = "Fatt. n." & Form_Fattura.IDFatturaDdT
con  NomeFile = "Fattura"
MailDestinatario = Form_FatturaDDT.email
con
MailDestinatario = "
xs...@dsdaasd.it
"
Ti ricordo che il Report deve chiamarsi Fattura
Ora il tuo modulo è così o non fa riferimento ad alcuna maschera per il 
recupero del nome del file PDF e dell'indirizzo mail.
Dovrebbe funzionare
'******************************
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 Start()
PrintRep "Fattura"
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
'INSERISCI LE TUE VARIABILI
DirSalvataggio = "C:\Documents and Settings\Computer\Desktop\Nuova cartella 
(2)"     'Directory di slavataggio
NomeFile = "Fattura"
MailDestinatario = "
xs...@dsdaasd.it
"




Ciao
Allora, copiando il codice sopra va benissimo: forma la mail inserisce 
l'allegato e mette l'email,
solo che:
non è automatica l' email del cliente
il PDF viene sostituito nella cartella poiche ha lo stesso nome
Ho provato ha inserire di nuovo MailDestinatario = Form_FatturaDdT.email e 
NomeFile = "Fatt. n." & Form_FatturaDdT.IDFatturaDdT   ma da lostesso errore 
e lo mette in grigio
per quanto riguarda l'indirizzo e mail si trova nella tabella Rubrica nel 
campo email, la quale Tab. è collegata alla tabella FatturaDdT con la 
relazione,
cosi al richiamo del codice cliente mi da tutti i suoi dati comresa l'email.
Come si risolve?
E possibile inserire l'oggetto e del testo nel corpo della mail prendendolo 
da alcuni campi della fattura?
Comunque veramente grazie per l'aiuto.

 Comunque veramente grazie per l'aiuto.
Ciao
Buon lavoro 

Funziona alla grande grazie per l'aiuto
veramente bene, ho utilizzato al funzione DlookUp
adesso spero di inserire l'oggetto e il copro.
Ciao
Buon lavoro