액세스 - Sendmail의 결과를 반환하는 방법?
-
13-12-2019 - |
문제
도움말에 미리 감사드립니다.클릭 한 코드를 클릭하면 이메일을 만들고 본문과 고객 이메일 주소를 삽입하고 인보이스 사본을 첨부합니다.두 가지 질문이 있으며, 첨부 파일의 이름을 변경할 수 있습니다. invoicef.pdf는 배달 참조가 될 수 있습니다.둘째로, 메일 보내기 결과를 잡을 수 있습니까?이메일이 보낼지 여부를 알고 있습니다. 단지 닫힘, 액세스는 "객체 보내기 작업 보내기가 취소되었습니다"라는 정보 상자를 넣고 "성공적으로 보냄"확인을 누르고 오늘의 날짜를 상자 [invoiceEmailed]에 추가하고 싶습니다.그들의 도움을 미리 만서 누구든지 감사드립니다 :)
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
. 해결책
docmd.sendobject 명령은 매우 제한적입니다.디스크에서 파일을 첨부 할 수는 없습니다.이 제한 때문에 docmd.sendobject 을 사용하여 첨부 할 파일 이름과 첨부 할 파일의 제어가 없습니다.
이 문서가 도움이 될 수 있습니다 : http ://msdn.microsoft.com/en-us/library/aa167323(v=office.11).aspx .
나는 과거의 outlook.Application 객체를 사용하고 그것을 발견했다.이메일을 보내기 전에 일부 사용자 상호 작용을 가질 수 있습니다.또한 추적이 더 쉬울 수 있으므로 전망이 쉽습니다.이 접근 방식은 자체 단점이 있습니다.
성공 메시지와 관련하여 귀하의 질문에 따라 다음 코드에 다음을 추가 할 수 있습니다.
....
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
...
. 제휴하지 않습니다 StackOverflow