Rapport onmiddellijk mailen uit formulier

Status
Niet open voor verdere reacties.

pommeke

Gebruiker
Lid geworden
17 jul 2007
Berichten
237
Ik heb een database (in bijlage)
Er zit een formulier in voor een factuur te maken.
Nu zit er in dit formulier een knop om het factuur dat nu open is af te drukken (een rapport wordt dan afgedrukt).
Maar om papier te besparen zou ik nu willen dat dit rapport gemaild word.
Ik zou dan in de tabel KIND een veld bij maken met mail adres (is nog niet aangemaakt in deze versie)
Maar voor de rest weet ik niet goed hoe te beginnen.
Want het moet een pdf zijn die verzonden wordt.

Toen ik het idee had om het factuur zo af te drukken hebben ze mij hier ook zeer goed geholpen.
Er zit wat code achter.
Maar heb totaal geen idee hoe en wat.
 
Laatst bewerkt:
Het is op zich niet zo moeilijk om van een rapport een PDF te maken, en dat te mailen. Dinoshop is daar uitgebreid mee bezig geweest, en hij heeft ook het een en ander aan code in het forum gezet. Zoek maar even op 'rapport mailen' of 'rapport pdf' en je komt een heel eind. Ter inspiratie hier alvast een linkje met alle code die je nodig hebt :).
 
Hallo OctaFish,

Ik zal het zeker bekijken en opzoeken.
Probleem is dat ik zo goed als niets ken van code.
Dus het is eigenlijk allemaal chinees voor mij. :(
 
Ik heb voorlopig geen tijd om naar de db te kijken, vandaar het huiswerk :D.
 
Ik ben er mee bezig geweest,
en ben al een beetje verder.
Maar nu kan niet meer verder.
Heb de code van de print code aangepast zodat deze nu mailt
Code:
Private Sub Command101_Click()
On Error GoTo Err_Command101_Click

    If Me.Dirty Then Me.Dirty = False

    Dim sFilter As String, stDocName As String
        stDocName = "Factuur"
        sFilter = "Factuurnr=" & Me.FactuurNR
        'DoCmd.OpenReport stDocName, , , , , sFilter
[COLOR="#FF0000"][B]        DoCmd.SendObject acSendReport, stDocName, acFormatPDF, "****@****.**", , , "Factuur Het Kabouterbos", test, True, ""[/B][/COLOR]
    Exit Sub


Exit_Command101_Click:
    Exit Sub

Err_Command101_Click:
    MsgBox Err.Description
    Resume Exit_Command101_Click
    
End Sub

Probleem 1: Als ik voordien op de knop klikte print hij alleen het factuur af dat je net hebt gemaakt (en dus open staat).
Nu mailt hij alle facturen in bijlage.
Ik weet dat de sFilter dit doet, maar heb geen idee hoe ik dit in de mail functie moet zetten.

Probleem 2: Ik heb er nu een vast mail adres in staan, maar dit moet het mail adres worden dat bij het kind staat.
 
Laatst bewerkt:
Het mailen naar de juiste persoon is ook al gelukt (denki ik)

Code:
DoCmd.SendObject acSendReport, stDocName, acFormatPDF, Me.Mail_adres, , , "Factuur Het Kabouterbos", test, True, ""

Nu nog er voor zorgen dat er alleen de record die open staat wordt opgeslagen als pdf .
 
Dat staat (op een knullige manier) beschreven in het draadje dat ik als huiswerk mee heb gegeven :). Een mooiere manier is om de SQL van het rapport te veranderen met de QueryDefs collectie. Daar heb ik al wat voorbeelden van gepost de laatste weken, dus die moet je kunnen vinden.
 
Dat staat (op een knullige manier) beschreven in het draadje dat ik als huiswerk mee heb gegeven :).

Zal het eens zoeken, maar heb dat topic al verschillende keren gelezen.
Is nog al moeilijk als geen kennis hebt.

Een mooiere manier is om de SQL van het rapport te veranderen met de QueryDefs collectie. Daar heb ik al wat voorbeelden van gepost de laatste weken, dus die moet je kunnen vinden.

Dit is helemaal chinees voor mij

Het rapport moet niet opgeslagen worden op de computer.
Het moet alleen verzonden worden via mail.
Maar natuurlijk wel alleen het rapport van de record die net aangemaakt is.
 
Laatst bewerkt:
ik heb het op deze manier kunnen oplossen

Code:
Private Sub Knop168_Click()
On Error GoTo Err_Knop168_Click

Dim sFilter As String
sFilter = "Factuurnr=" & Me.FactuurNR

DoCmd.OpenReport "Factuur", acViewPreview, , "Factuurnr=" & Me.FactuurNR, acHidden, sFilter
DoCmd.SendObject acSendReport, "Factuur", acFormatPDF, Me.Mail_adres, , , subject, message, True
DoCmd.Close acReport, "Factuur"
    

Exit_Knop168_Click:
    Exit Sub

Err_Knop168_Click:
    MsgBox Err.Description
    Resume Exit_Knop168_Click
    
End Sub
 
Dat zeg ik: beetje knullige oplossing, maar hij werkt wel :). Overigens sla je het rapport met de QueryDefs ook niet op.
 
Als ik nu op de knop mailen druk krijg ik altijd volgende foutmelding:

Knipsel.JPG

Weet iemand hier een oplossing voor?

Graag had ik ook nog geweten hoe ik meer tekst in de message kan zetten.
Ik bedoel met enters enz...
 
Je gebruikt een variabele voor je tekst (message). Die kun je prima vullen met tekst en Enters. Dat laatste kun je doen met Chr(13), Chr(10), VbCrLf, VbLf of VbNewLine. Keuze genoeg dus :)
Wat betreft de boodschap: die wordt veroorzaakt door de Outlook beveiliging. Als je daar niet omheen kunt zou ik ClickYes installeren, dat is een klein programma dat er voor zorgt dat de mailing gewoon doorloopt. Eigenlijk doet het niet meer dan voor jou op <Enter> drukken. Maar het werkt prima.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan