문제

도움말에 미리 감사드립니다.클릭 한 코드를 클릭하면 이메일을 만들고 본문과 고객 이메일 주소를 삽입하고 인보이스 사본을 첨부합니다.두 가지 질문이 있으며, 첨부 파일의 이름을 변경할 수 있습니다. 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
...
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top