Naamgeving wijzigen van een te verzenden PDF

Status
Niet open voor verdere reacties.

tonp60

Gebruiker
Lid geworden
29 jul 2009
Berichten
136
Hallo,

Ik gebruik de optie sendobject in een VBA script om een rapport te verzenden vanuit een actieknop. Zie onderstaand.
Code:
Private Sub Verstuur_offerte_klant_Click()
DoCmd.Echo False
DoCmd.SetWarnings False
    Me.Refresh 
    DoCmd.OpenQuery "QryMailOfferte"
    Dim con As ADODB.Connection, rs As ADODB.Recordset
    Set con = CurrentProject.Connection
    Set rs = New ADODB.Recordset
    rs.Open "TTbl_Offerte", con, adOpenKeyset, adLockOptimistic
    rs.MoveFirst
    If IsNull(rs.Fields("Email")) Then emaillijst = "test3@gmail.com"
          If Not IsNull(rs.Fields("Email")) Then emaillijst = rs.Fields("Email")          
    Debug.Print emaillijst
    rs.Close
    con.Close
    Set rs = Nothing
    Set con = Nothing
    DoCmd.SendObject acReport, "RZoekenOfferte", "PDFFormat(*.pdf)", emaillijst, , , "Aanbieden offerte", "", , ""
DoCmd.SetWarnings True
DoCmd.Echo True
End Sub
Als naamgeving van de bijlage wordt het bijschrift van het rapport gebruikt. Dit is dus bij iedere verzending exact hetzelfde.

Is het mogelijk om de bijlage direct een naam te geven van een van de velden die in het rapport gebruikt wordt. Bijv. de achternaam of het ordernummer?
Ik laat de query eerst een tijdelijke tabel maken waarin de gefilterde gegevens worden opgenomen.

Groet,
Ton
 
Die tijdelijke tabel lijkt mij volstrekt overbodig en daarnaast wordt de db er alleen maar nodeloos groter van. En het helpt niets aan een oplossing :). Die is er namelijk niet (direct); je kunt met SendObjects niet zoveel. Dan zou je een Outlook object moeten maken (en dus met Outlook mailen).
Maar er is wel een workaround: het rapport renamen naar de gewenste naam. Dus eerst hernoem je het rapport, vervolgens mail je het en daarna zet je de oorspronkelijke naam weer terug.
 
Yep, exporteer de pdf in een file met de gewenste naam en gebruik vervolgens het Outlook object om het aangemaakte bestand als attachment mee te sturen.
Iets als:

Code:
Public Function CreateMailMessage(strTo As String, strSubject As String, strBody As String, strFile As String) As Boolean
On Error GoTo Err_CreateMailMessage

    Dim appOutlook As New Outlook.Application
    Dim msg As Outlook.MailItem
    Dim intpos As Integer
    
    Set msg = appOutlook.CreateItem(olMailItem)
    
        msg.To = strTo
    msg.Subject = strSubject
    msg.Body = strBody
    msg.Attachments.Add (strFile)
    msg.Send
    
    CreateMailMessage = True

Exit_CreateMailMessage:
    Exit Function
    
Err_CreateMailMessage:
    Debug.Print Err.Number & ": " & Err.Description
    CreateMailMessage = False
    Resume Exit_CreateMailMessage

End Function
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan