Rapport automatisch verzenden als pdf naar mailadres

Status
Niet open voor verdere reacties.
Oke ik hoop dat het nu lukt dan. Om een daglijst te genereren in het Rapport Verzendlijst2 moet je even de datum 16-01-16 gebruiken. Voor rekeningen versturen gebruik ik de module Rekeningen sturen. Wat ik verder wens heb ik in het vorige bericht hopelijk zo goed mogelijk beschreven

Nu zou ik willen dat er op een gegeven moment, bij voorkeur dagelijks om 17uur een lijst komt van klanten die op die dag een levering hebben gehad en daar vervolgens de verzendlijst van die betreffende dag naar de desbetreffende klant wordt gestuurd. Met de hulp van NoellaG krijg ik nu een lijst met hierin de velden

[OrderId] [KlantID] [Leverdatum] [Naam Klant] [Mailadres Klant].
[2185] [600061] [19-3-2020] [Groen Direkt] [GD@GD.NL]

Kan ik nu op basis van deze gegevens automatisch(of wanneer het niet anders kan op klik) het rapport Verzendlijst openen voor Groen Direkt van datum 19-3-2020 en dit gelijk als pdf bijlage versturen naar GD@GD.NL

Code:
Public Function SendInvoice()

Dim db As DAO.Database
Dim MailList As DAO.Recordset
Dim MyOutlook As Outlook.Application
Dim MyMail As Outlook.MailItem
Dim Subjectline As String
Dim fso As FileSystemObject
Dim strRptName As String



Set fso = New FileSystemObject
strRptName = "DigitaleFactuur"


Set MyOutlook = New Outlook.Application

Set db = CurrentDb()

Set MailList = db.OpenRecordset("DigitaalFactureren")




Do Until MailList.EOF

' Here we open the report with Invoicenumber of the maillist
' Afther that we save it in our Invoice folder
DoCmd.OpenReport "DigitaleFactuur", acViewPreview, , "Factuurnummer = " & MailList!Factuurnummer
DoCmd.OutputTo acOutputReport, strDocName, acFormatPDF, "O:\backup\AJ de Lange\Jaaroverzichten\DigitaleFacturen\" & MailList!Factuurnummer & ".pdf"

'We check if there is a mailadres for Invoices when yes then send when no then print out
If Len(MailList("Factuurmailadres") & vbNullString) = 0 Then
  DoCmd.OpenReport "DigitaleFactuur", , , "Factuurnummer = " & MailList!Factuurnummer
Else

'We're going to prepair the mail
Set MyMail = MyOutlook.CreateItemFromTemplate("C:\Users\Gebruiker\AppData\Roaming\Microsoft\Templates\Digitale factuur.oft")
' This addresses it

MyMail.To = MailList("Factuurmailadres")
MyMail.BCC = MailList("Webadres")

'This gives it a subject
MyMail.Subject = "Factuur " & MailList!Ordermaand & " Boomkwekerij de Lange"


'Here we attach the invoice to the mailadress
MyMail.Attachments.Add "O:\backup\AJ de Lange\Jaaroverzichten\DigitaleFacturen\" & MailList!Factuurnummer & ".pdf", olByValue, 1, "My Displayname"


' "My Displayname" = If you don??t want the attachment??s icon string to be "c:myfile.txt" you
' can use this property to change it to something useful, i.e. "4th Qtr Report"

'This display it ready to send, i like to check if invoice is wright!

MyMail.Display

End If
DoCmd.Close acReport, strRptName, acSaveNo

'And on to the next one...
MailList.MoveNext

Loop

'Cleanup after ourselves

Set MyMail = Nothing

'Uncomment the next line if you want Outlook to shut down when its done.
'Otherwise, it will stay running.

'MyOutlook.Quit
Set MyOutlook = Nothing

MailList.Close
Set MailList = Nothing
db.Close
Set db = Nothing

End Function
 

Bijlagen

Zal er zo even naar kijken!
 
Heb er naar gekeken, maar snap er dus niet zoveel van. Bovendien zitten er dermate weinig records in je database dat daar een query op draaien weinig zin heeft. Daarnaast zijn de relaties door mij niet te leggen, want ik snap dus niks van je tabellenstructuur. De tabellen in het rode kader kan ik dus niet aan elkaar knopen. Daarnaast vraag ik me af waarom je zoveel tabellen hebt gemaakt voor (in mijn simpele optiek) hetzelfde.
Relaties.png
 
In mijn eigenlijke db zitten in de tabel orders ongeveer 1000 orders. In de tabel detgegorders denk zijn 10000 leveranties binnen die 1000 orders. 500 klanten. In de detgegorders staat de verwijzing naar de order, naar het product en de naam. Mijn eigenlijke vraag blijft nog steeds zou het mogelijk zijn om door middel van de lijst gecreëerd in een query waaruit het volgende ontstaat
OrderId] [KlantID] [Leverdatum] [Naam Klant] [Mailadres Klant].
[2185] [600061] [19-3-2020] [Groen Direkt] [GD@GD.NL]
een loop te creëren die een rapport opstuurt op basis van Groen Direkt op 19-03-2020 en dit rapport gelijk mailt naar het mailadres. Het liefst een loop door automatisch in de avond gestart wordt en anders gestart bij muisklik. Het rapport in mijn db heet Verzendlijst2. Wanneer het antwoord nee is oke en wanneer het ja is heel mooi en dan zou ik wat hulp kunnen gebruiken
 
Uiteraard kan het, dat is ook helemaal het probleem niet. Maar met een tabel met één record (of zelfs lege tabellen) valt niks te testen. D’r hoeven geen 500 records in te zitten, maar een paar moet toch mogelijk zijn? En alle relaties werkend? Nu kost het veel tijd om uit te zoeken hoe het in elkaar zou kunnen zitten. Die besteed ik liever ergens anders aan :).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan