Zasto ne pokusas potpuno nov pristup. Ovako:
1. nadji na netu neki besplatan program koji dozvoljava da instaliras neki PDF writer (Moze i Adobe Writer ako ga imas). PDF writeri se pojavljuju kao novi printer na listi printera.
2. kad otvoris report, posaljes ga na PDF writer printer => PDF fajl negde na disku, PDF ce da stvori 'fotografiju' reporta, sta god da je na njemu
3. posaljes e-mail sa attachmentom (PDF fajl koji si upravo snimio)
Za ovo ti treba referenca na MS Outlook i MS Office. Tada mozes u HELP-u da vidis kako se programskoi poziva Outlook i kako se dodaje attachment i kako se sve to salje. Ima dosta koda ali nije bog zna kako tesko. Vidi primer koda na kraju poruke.
Treba znati da neki PDF writeri dozvoljavaju da definises ime PDF fajla i path, a neki podrazumevaju nekakav default path i default ime, pa prepisuju preko postojeceg fajla. U svakom slucaju ti znas gde se faj nalazi, pa sve to odradis u jednoj proceduri. kad kliknes na dugnme 'Posalji Fakturu'; onda s eodrade procedurice za 1) kreiranej PDF fajla sa izvestajem i 2)kreiranje Outlook poruke 3) attach fajl na poruku 4) posalji fajl i izvesti korisnika da je sve OK.
Evo nekoliko korisnih linkova:
http://www.mvps.org/access/modules/mdl0019.htm
a ako googlas 'Send e-mail from Access" dobices jos neke korisne linkove gde ima puno toga objasnjeno i gotovih primera. Na primer:
http://www.peterssoftware.com/c_emfa.htm
http://www.granite.ab.ca/access/email.htm
Evo gde ima odlican PDF writer, imas besplatnu demo verziju, a moze i da se kupi za 20-30 EU:
http://www.daneprairie.com/
Ovaj PDF writer je bolji od ostalih jer ti dozvoljava da dodelis ime PDF-u (to ti treba da bi specificirao path za attchment)
Evo kako se salje mail iz Accessa, sa attachmentom.
Code:
Function SendOultookMessage(strTo As String, strSubject As String, strMessageBody As String, Optional strAttachment As String = "") As Boolean
'Purpose: send e-mail with optional one attachment
'Requirements: Microsoft Outlook 11.0 Library
'WARNING: OUTLOOK security may cause problems and may need to be updated to allow invoking Outlook from Access
'Examples:
'? SendOultookMessage(strTo:="
[email protected]", strSubject:="Test message", strMessageBody:="Plese review attached document", strAttachment:="C:\Messages To Send\Invoice_123456.PDF")
'? SendOultookMessage(strTo:="
[email protected]", strMessageBody:="There is no attachment in this one :-)", strSubject:="Test message")
Dim strErrMsg As String 'For Error Handling
Dim olApp As New Outlook.Application
Dim olNameSpace As Outlook.NameSpace
Dim olMail As Outlook.MailItem
On Error GoTo Error_Handler
Set olNameSpace = olApp.GetNamespace("MAPI")
Set olMail = olApp.CreateItem(olMailItem)
With olMail
.To = strTo
.Subject = strSubject
.Body = strMessageBody
If Len(strAttachment) > 0 Then
.Attachments.Add strAttachment
End If
.ReadReceiptRequested = False
.Send
End With
MsgBox vbCrLf & "Message has been E-Mailed", _
vbInformation + vbOKOnly, "SendOultookMessage :"
SendOultookMessage = True
Exit_Here:
Set olApp = Nothing
Set olMail = Nothing
Exit Function
Error_Handler:
Select Case Err
Case Else
strErrMsg = strErrMsg & "Error #: " & Format$(Err.Number) & vbCrLf & vbCrLf
strErrMsg = strErrMsg & "Error Description: " & Err.Description & vbCrLf
MsgBox strErrMsg, vbInformation, "cmdEmailGraph_Click"
End Select
Resume Exit_Here
End Function
Eto,imas dosta materijala, pa vidi sta ti odgovara.
:-)