Pergunta

Agradecemos antecipadamente por qualquer ajuda.Tenho o seguinte código que ao ser clicado cria um email, insere o corpo e o email do cliente e anexa uma cópia da fatura.Tenho duas dúvidas, uma é possível alterar o nome do arquivo anexado, no momento é só a faturaF.pdf que poderia ser a referência da entrega.E em segundo lugar, é possível capturar o resultado do envio de e-mail?Eu sei que se o e-mail não for enviado, apenas fechado, o acesso coloca uma caixa de informações dizendo "A ação de envio do objeto foi cancelada", quero pegar a confirmação "enviado com sucesso" e adicionar a data de hoje em uma caixa [invoiceemailed].Obrigado a todos antecipadamente por sua ajuda :)

Private Sub emailinvoiceF_Click()
On Error GoTo Err_emailinvoiceF_Click

If MsgBox("Email the invoice?", vbYesNo) = vbYes Then

Dim strMessage
strMessage = "Dear " & First & " " & Last & "," _
& vbCrLf & vbCrLf & "Thank you for your order: (" & DeliveryID & "), please find attached invoice." _
& vbCrLf & vbCrLf & "If you require any further information please do not hesitate to contact us." _
& vbCrLf & vbCrLf & "Kind Regards," _
& vbCrLf & vbCrLf & "SMI Hardwoods" _
& vbCrLf & vbCrLf & "Tel: 01206 396725" _
& vbCrLf & vbCrLf & "www.smi-hardwoods.com" _


    Dim stDocName As String

    stDocName = "InvoiceF"
    DoCmd.SendObject acReport, stDocName, acFormatPDF, [E-mail address], , , "SMI Hardwoods Invoice Ref:" & DeliveryID & ".pdf", strMessage
End If

Exit_emailinvoiceF_Click:
    Exit Sub

Err_emailinvoiceF_Click:
    MsgBox Err.Description
    Resume Exit_emailinvoiceF_Click

End Sub
Foi útil?

Solução

DoCmd.SendObject comando é muito limitado.Não permite anexar arquivos do disco.Devido a esta limitação, você não tem controle sobre o nome do arquivo e o número de arquivos a serem anexados usando DoCmd.SendObject.

Você pode achar este artigo útil: http://msdn.microsoft.com/en-us/library/aa167323(v=office.11).aspx.

eu usei Outlook.Aplicativo objeto no passado e achei que estava OK.Permite ter alguma interação do usuário antes de enviar um email.Além disso, ele vai direto para o Outlook, portanto o rastreamento pode ser mais fácil.Essa abordagem tem seus próprios contras, no entanto.

De acordo com sua pergunta sobre a mensagem de sucesso, você pode adicionar o seguinte ao seu código:

....
    DoCmd.SendObject acReport, stDocName, acFormatPDF, [E-mail address], , , "SMI Hardwoods Invoice Ref:" & DeliveryID & ".pdf", strMessage

    'Display success message
    MsgBox("Successfully sent on: " & Date())
End If

Exit_emailinvoiceF_Click:
    Exit Sub
...
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top