Marcin Rzadkowalski

Marcin Rzadkowalski Kierownik produkcji,
All Sealing
Solutions

Temat: Wysylanie raportu mailem jako PDF

Witam wszystkich,

Mam prosbe o pomoc przy napisaniu kodu.

Chcialbym wyslac raport w formacie PDF z tym ze raport ma byc pogrupowany i zapisany do PDF w osobnych plikach.
Pewnie nie jasno to opisalem ale jesli znalazl by sie ktos chetny to postaram sie to uscislic.

W chwili obecnej mam kod ktory generuje mi PDF ale tylko jeden i nie potrafie sobie poradzic w utwozeniem petli.



Sub cmdReportPDF_Click()
Dim i As Integer
Dim objol As Object
Dim objmail As Object
Dim objFolder As Object
Dim fso As Object
Dim fsFolder As Object
Dim fsFile As Object
Dim FileName As String
Dim FilePatch As String
Dim oOutlook As Outlook.Application
Dim strItem As String

'---------------------------------------------------------------------------------------//




'// Create various needed objects. I happen to use late-binding. //
Set fso = CreateObject("Scripting.FileSystemObject")
ObjstartFolder = "C:\Temp\Access"
Set fsFolder = fso.GetFolder(ObjstartFolder)


'// Create .PDF files//


DoCmd.OpenReport "Cert_Archer", acViewPreview
strItem = [Reports]![Cert_Archer]![Trinf1]
FileName = strItem + ".pdf"
FilePatch = "C:\Temp\Access\"
DoCmd.OutputTo acOutputReport, "", acFormatPDF, FilePatch + FileName, False
DoCmd.Close acReport, "Cert_Archer"

'//Create Email with attachment//
Set objol = CreateObject("Outlook.Application")
Set objmail = objol.CreateItem(0) '(olMailItem)
If oOutlook Is Nothing Then
Set oOutlook = New Outlook.Application
End If



With objmail
.To = "Me@Wherever.com"
.Subject = ""
.Body = "Here's a test"
.NoAging = True

'// Using the file system object, return/add all the PDF files in the picked //
'// folder. //
For Each fsFile In fsFolder.Files
If fsFile.Name Like "*.pdf" Then
.Attachments.Add "C:\Temp\Access" & "\" & fsFile.Name
End If
Next

.Display

End With

errhndl:
Set objFolder = Nothing
Set fso = Nothing
Set fsFolder = Nothing
Set objol = Nothing
Set objmail = Nothing





End Sub


Pozdrawiam Marcin
Oskar Shon

Oskar Shon Dodatki do Office
www.VBATools.pl

Temat: Wysylanie raportu mailem jako PDF

Jaką treść chcesz wysyłać - dane z Bazy danych (pętla po rekordach bazy).
Pliki w katalogu (pętla po plikach masz fso).
Do tego adresaci, treść wiadomości - sąd masz ich brać?
Jaki klient pocztowy własny czy Outlook?
Poniżej widzę tylko utworzenie PDFa z raportu jednej kwerendy (i to nie sparametrywowanej).

Parę gotowych rozwiązań bazujących na Excelu i Outlooku lub własnym kliencie masz tutaj:
http://vbatools.pl/generator-maili/ [Excel/Outlook]
http://vbatools.pl/redystrybucja-zalacznikow/ [Excel/Własny klient]
http://vbatools.pl/pojedyncza-wysylka-emaili/ [Outlook]
Marcin Rzadkowalski

Marcin Rzadkowalski Kierownik produkcji,
All Sealing
Solutions

Temat: Wysylanie raportu mailem jako PDF

Witam,

Mam raport ktory sklada sie z wielu stron.
Chcialbym zapisac kazda ze stron do oddzielnego pliku PDF a nastepnie wygenerowac Emaila (Outlook)

Adresata i tresc wpisywal bym sam.

Pozdrawiam Marcin
Oskar Shon

Oskar Shon Dodatki do Office
www.VBATools.pl

Temat: Wysylanie raportu mailem jako PDF

W takim razie musisz selektem wyciągnąć ilość tych stron, przekazać parametr do widoku.
Każde sparametryzowane zapytanie powinno pokazać kolejną stronę.
Pętla powinna być oparta na iteracji tej ilości.

Jeśli np będziesz miał 3 adresatów to sobie wpiszesz ręcznie adresy, a jak będziesz miał 100 to chcesz 100 maili mieć na pulpicie do wpisania?
Marcin Rzadkowalski

Marcin Rzadkowalski Kierownik produkcji,
All Sealing
Solutions

Temat: Wysylanie raportu mailem jako PDF

Czy bylbys w stanie pomoc mi napisac ten kod??
Niestety moje zdolnosci w tym kierunku sa mocno ograniczone.

Raczej nie bede mial problkemu z iloscia maili bo maksymasnie wysylam je do 2-3 adresatow.
Oskar Shon

Oskar Shon Dodatki do Office
www.VBATools.pl

Temat: Wysylanie raportu mailem jako PDF

Nie znam twoich baz, ich nazw i zawartości.
Selekta z pewnością umiesz pisać - w ACC to sie kwerenda nazywa.
Wywołaj zapytanie abyś dostał pierwszy rekord, innym następny i następny.

select * from baza t where t.id = 1

Wyświetl wynik w formularzu i wywołaj kod.

Jeśli i tam to ma być 2-3 rekordy to wystarczy selektor w formie listboxa na formularzu do którego załadujesz osoby i przycisk "generuj maila" albo umieszczony na wstędze albo wywołany skrótem klawiszowym.
Marcin Rzadkowalski

Marcin Rzadkowalski Kierownik produkcji,
All Sealing
Solutions

Temat: Wysylanie raportu mailem jako PDF

Dzieki za podpowiedzi bede musial powalczyc :-)

Następna dyskusja:

Tworzenie PDF z raportu




Wyślij zaproszenie do