24. februar 2005 - 17:21Der er
16 kommentarer og 3 løsninger
Plugin til access
Hej alle eksperter
Jeg har tidligere forespurgt på at kunne generere en PDF udfra en rapport, som automatisk sendes med en e-mail. Men har aldrig fået en løsning.
Nu sidder jeg med sendobjekt, rapport, snapshot og det virker fint, mit sp. er om der er nogle som kender til et plugins til access, sådan at man kan sende via pdf istedet for snapshot. Har adobe acrobat installeret.
Det vil være bedst hvis man kan undgå at skulle oprette en fil på disken (PDF) men at den sendes på samme måde som Snapshot, bare som pdf eller andet format som ikke kan rettes og åbnes uden spec. programmer. Den skal kunne indeholde billeder/logo og linjer... På forhånd tak...!
Her er en stump kode, som virker hos mig. Hos mig genereres PDF-filerne ved at man vælger at udskrive rapporten til den Printer, som hedder "Acrobat PDFwriter".
Koden finder derfor den printer, som hedder noget med PDFWriter og skriver rapporten ud til en tmpfil, som så lægges ind i mailen, hvorefter tmp-filen slettes igen.
Der er en del ukendte faktorer, som kan spolere koden på din maskine. Men prøv det:
Public Sub CreateMail(Til As String, Emne As String, Brødtekst As String, Optional Attachment As String, Optional SendImmidiatly As Boolean = False) Dim OutL As Object Dim Item As Object Dim Receiver As Object
Set OutL = CreateObject("Outlook.Application")
Set Item = OutL.CreateItem(0)
With Item
.Subject = Emne .Body = Brødtekst If Len(Attachment) > 0 Then .Attachments.Add Attachment .Recipients.Add Til
If SendImmidiatly Then .Send Else .Display End If End With
Set Item = Nothing End Sub
Public Function FindPDFWriter() As String 'Find PDF-writer i printer-listen Dim prt As Printer For Each prt In Printers If prt.DeviceName Like "*PDFWriter*" Then FindPDFWriter = prt.DeviceName End If Next prt End Function
Public Function SendSomPDF(strRptName As String) On Error Resume Next Dim tmpSti As String 'Angiv temporær sti, hvor filen placeres kortvarigt tmpSti = "C:\" tmpSti = tmpSti = strRptName & ".pdf" DoCmd.OpenReport strRptName, acViewPreview, , , acHidden 'Skift printer til pdfwriteren Set Reports(strRptName).Printer = Application.Printers(FindPDFWriter)
Jeg kan ikke få den sidste kode til at virke. Den første virker perfekt. Den sidste volder mig store problemer. Har du mulighed for at sende en DB til mig på taio@private.dk hvor du har lavet din kriterier. Hvad med referencer, er der noget som jeg skal tilføje ?
På forhånd tak..
Jeg er villig til at give 200 point ekstra, idet jeg mangler det meget...
Lad mig lige høre først. Hvordan gemmer du din rapport som PDF? Gør du det samme som jeg: Vælger menuen Filer->Udskriv og vælger derefter den "printer" som hedder "Acrobat PDFWriter"?
Hvis du gør det på en anden måde, så er det nok derfor. Og så hjælper det ikke at sende dig min db.
PS: Man må desværre ikke give mere end 200 point pr spørgsmål ;o) Men det er også fint...
Det er svært at sige, for jeg bruger ikke pdf endnu, men ja, jeg ville mene at det kunne gøres på denne måde. Nu bruger jeg DoCmd.OpenReport "faktura" til alm. print. Og SendObjekt til SnapShot. Men det er ikke alle som kan læse SnapShot, derfor PDF...! Håber at du forstår ?
Tak for hjælpen. Jag mangler bare at jeg kan sætte: "Dim prt As Printer" jeg kan ikke finde udaf om det er en reference jeg mangler, men jeg har fået det til at virke ved at sætte egenskaber på hver rapport. Send mig et svar, og jeg vil meget gerne give dig point.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.