2012-05-22 1 views
1

Заранее благодарим за любую помощь. У меня есть следующий код, который при нажатии создает письмо, вставляет адрес электронной почты тела и клиента и прикрепляет копию счета-фактуры. У меня есть два вопроса: можно ли изменить имя прикрепленного файла, на данный момент это просто invoiceF.pdf может сделать это, поскольку это ссылка на доставку. И во-вторых, можно ли поймать результат отправки почты? Я знаю, что если письмо не отправлено, просто закрыто, доступ помещает информационный блок, говорящий: «Действие объекта отправки было отменено», я хочу поймать подтверждение «успешно отправлено» и добавить сегодняшнюю дату в поле [invoiceemailed]. Благодаря никому до их помощью :)Доступ - Как вернуть результат sendmail?

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 

ответ

1

команды DoCmd.SendObject очень ограничено. Это не позволяет вам прикреплять файлы с диска. Из-за этого ограничения вы не контролируете имя файла и количество файлов, которые нужно подключить, используя DoCmd.SendObject.

Возможно, эта статья окажется полезной: http://msdn.microsoft.com/en-us/library/aa167323(v=office.11).aspx.

Я использовал Outlook.Application объект в прошлом и нашел его в порядке. Это позволяет взаимодействовать с пользователем перед отправкой электронной почты. Кроме того, это происходит прямо в Outlook, поэтому отслеживание может быть проще. Однако этот подход имеет свои недостатки.

По вашему вопросу относительно сообщение успеха, вы можете добавить следующую строку в ваш код:

.... 
    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 
...