Email PDF

Status
Niet open voor verdere reacties.

Rene71

Gebruiker
Lid geworden
2 aug 2012
Berichten
133
ik heb een vraag mbt onderstaande code
ik het mogelijk om een PDF te maken met het huidige Recordnummer met tekst
B.V. Contract [ContractID]
in plaats van het geen het nu doe een rptReport.pdf maken
en hoe doe je dit ? :confused:

en kan je de mail opmaken met html indeling

Code:
DoCmd.OpenReport "rptReport", acViewPreview, , "ContractID=" & Me.ContractID, acHidden
DoCmd.SendObject acSendReport, "rptReport", "ContractID=" & Me.ContractID, acFormatPDF, Me.E_Mail, , , "Contract Report", "Your contract report is attached.", True
DoCmd.Close acReport, "rptReport"
 
Ik snap niet wat je bedoelt, al krijg ik het vermoeden dan je de naam van de pdf dynamisch wilt. Dus als je licht kunt laten schijnen...
 
ik heb een test DB toegevoegd
de opmaak in html probleem is gevonden zat hem in outlook

ik wil inderdaad dat de .pdf een andere naam meekrijgt als rptReport.pdf in de email
ik zou indien mogelijk willen dat er een pdf gemaakt wordt met de naam b.v. Contractnr1.pdf

het is me wel gelukt om met "Contract Report " & Me.ContractID, dt er in het onderwerp gedeelte komt te staan: Contract Report 1
maar in de tekst (Your contract report 1 is attached) lukt me dat ook niet

Code:
DoCmd.OpenReport "rptReport", acViewPreview, , "ContractID=" & Me.ContractID, acHidden
DoCmd.SendObject acSendReport, "rptReport", acFormatPDF, Me.E_Mail, , , "Contract Report " & Me.ContractID, "Your contract report is attached.", True
DoCmd.Close acReport, "rptReport"

Bekijk bijlage EMAIL EEN PDF.rar
 
Code:
On Error GoTo errHandler

Dim strDocName As String
Dim strWhere As String
    
    strDocName = "rptReport"
    strWhere = "[ContractID]=" & ContractID
DoCmd.OpenReport strDocName, acPreview, "", strWhere, acHidden
DoCmd.SendObject acSendReport, strDocName, acFormatPDF, E_Mai, , , "Contractnr " & Me.ContractID, "het contract & Me.ContractID is attached.", True


errExit:
    Exit Sub
    
errHandler:
    If Err.Number = 2501 Then
       End If
    Resume errExit
DoCmd.Close acReport, strDocName
End Sub

heb de code enig sinds aangepast en krijg nu wel in het onderwerp van de mail de tekst met het ContractID
nu nog de naam van de pdf kunnen aanpassen
hoop dat iemand een idee heb wat ik bedoel en of een oplossing weet
heb er een afbeelding bij gedaan om het iets te verduidelijken
emailpdf.jpg
 
ik kan het voorbeeld niet vinden. maar je kan het rapport eerst opslaan onder de gewenste naam en daarna de opgeslagen file mailen.
 
Of het rapport eerst hernoemen, en de 'nieuwe' naam mailen. Met 2 variabelen kom je een heel eind: eerst zet je de 'vaste' naam in een variabele. vervolgens hernoem je het rapport, daarna mail je het en als laatste geef je het de oude naam terug.
 
Goedemiddag Michel
mijn excuses voor de late reactie, ik ben weer even een tijdje ziek geweest.

hoe kan ik de variabele instellen voor het verzenden van de pdf
in onderstaande code kan ik het wel opslaanzoals ik wil, maar met verzenden lukt me niet
waar kan ik de variabele vandaan halen

Code:
Dim folder As String
Dim strDocName As String
Dim strWhere As String

On Error GoTo Opslaan_cmdReportOpslaan
folder = CurrentProject.Path & "\Opdrachtbevestigingen\"
MkDir folder
    Resume Opslaan_cmdReportOpslaan

Opslaan_cmdReportOpslaan:
    strDocName = "rptOrderbevestiging"
    strWhere = "[Ordernr]=" & Ordernr
DoCmd.OpenReport strDocName, acPreview, "", strWhere, acHidden
DoCmd.OutputTo acOutputReport, strDocName, acFormatPDF, folder & "Opdrachtbevestiging " & Me!Ordernr & ".pdf"
Isbevestigd = True
DoCmd.Close acReport, strDocName
 
Ik snap niet helemaal hoe je het nu wilt doen. Met SendObject kun je alleen een intern Access object versturen, dus een rapport o.i.d. Dat moet dan bekend zijn binnen Access. Als je een rapport exporteert naar PDF zoals je nu doet, dan maak je een extern bestand aan, maar dat kun je niet met SendObject versturen. Nu moet je met een losse Mail procedure werken. En die heb je er niet bij staan. Dus welke aanpak wil je gaan gebruiken?
 
dan het laatste wat je zegt :) een extern bestand verzenden

Voorbeeld: Opdrachtbevestiging-12345 (waarbij 12345 de waarde is van het huidige Record)

alleen is het daadwerkelijk opslaan van de pdf niet nodig (Volgens mij)
 
alleen is het daadwerkelijk opslaan van de pdf niet nodig (Volgens mij)
Dan is de eerste oplossing toch veel simpeler? En je zit niet vast aan Outlook...

Code:
Private Sub cmdVerzenden_Click()
Dim sNaam_Ori As String, sNieuw As String
Dim strWhere As String

    On Error GoTo errHandler
    'namen vastleggen en rapport hernoemen
    sNaam_Ori = "rptReport"
    sNieuw = "Opdrachtbevestiging " & Me.Ordernr
    DoCmd.Rename sNieuw, acReport, sNaam_Ori
    strWhere = "[ContractID]=" & ContractID
    'rapport hernoemen naar oorspronkelijke naam
    DoCmd.OpenReport sNieuw, acPreview, "", strWhere, acHidden
    DoCmd.SendObject acSendReport, sNieuw, acFormatPDF, E_Mail, , _
        , "Contractnr " & Me.ContractID, "het contract " & Me.ContractID & " is bijgevoegd.", True
    'rapport hernoemen naar oorspronkelijke naam
    DoCmd.Close acReport, sNieuw
    DoCmd.Rename sNaam_Ori, acReport, sNieuw
    Exit Sub
    
errHandler:
    If Err.Number = 2501 Then MsgBox "Er ging iets fout..."
    DoCmd.Close acReport, sNieuw

End Sub
 
Laatst bewerkt:
Bedankt Michel
ik krijg alleen nog niet de bestands naam dit ik graag wil.. Contract 1.pdf maar nog steeds rptReport.pdf
terwijl ik wel zie dat het rapport wordt aangepast

en bij de errHandler: gaat er iets niet goed bij het annuleren van der verzenden van de email, het rapport wordt niet terug gezet naar rptReport maar behoud de niet gekregen naam

Code:
Dim sNaam_Ori As String, sNieuw As String
Dim strWhere As String

   On Error GoTo errHandler
'namen vastleggen en rapport hernoemen
    sNaam_Ori = "rptReport"
    sNieuw = "Contract " & Me.ContractID
        DoCmd.Rename sNieuw, acReport, sNaam_Ori
    strWhere = "[ContractID]=" & ContractID
'rapport hernoemen naar oorspronkelijke naam
        DoCmd.OpenReport sNieuw, acPreview, "", strWhere, acHidden
        DoCmd.SendObject acSendReport, sNieuw, acFormatPDF, E_Mail, , _
        , "Contractnr " & Me.ContractID, "het contract " & Me.ContractID & " is bijgevoegd.", True
'rapport hernoemen naar oorspronkelijke naam
        DoCmd.Close acReport, sNieuw
        DoCmd.Rename sNaam_Ori, acReport, sNieuw
'DoCmd.Rename sNieuw, acReport, sNaam_Ori
    Exit Sub
    
errHandler:
   If Err.Number = 2501 Then MsgBox "Er ging iets fout..."
        DoCmd.Close acReport, sNieuw
        DoCmd.Rename sNieuw, acReport, sNaam_Ori
End Sub
 
errHandler: is opgelost
had de Snieuw en SNaam_Ori omgedraaid :confused::D

errHandler:
If Err.Number = 2501 Then MsgBox "Er ging iets fout..."
DoCmd.Close acReport, sNieuw
DoCmd.Rename sNaam_Ori, acReport, sNieuw
 
ik zou graag nog wat hulp kunnen gebruiken bij het aanmaken van de PDF

al de gevraagde gegevens worden idd netjes uitgevoerd
rapport krijgt een andere naam
kan nu ook de tekst meegeven
email wordt aangemaakt
bij annuleren van de email komt de melding er ging iets fout.... dan wordt de oude naam van het rapport weer hersteld
ook na het verzenden wordt de oude naam van het rapport weer hersteld
gaat allemaal goed

het enige wat het nog steeds niet doet is de juiste naam geven aan het pdf bestand
dat blijft rptReport.pdf

ik nog geprobeerd het record en rapport op te slaan maar dat gaf ook geen goed resultaat
ik het de database toegevoegd
Bekijk bijlage DBTEST.rar
 
heb het gevonden (Denk ik !) eindelijk :)
in het rapport stond bij bijschrift: rptReport dit heb ik leeg(weggehaald) gemaakt
dan gaat het goed
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan