1

助けてくれてありがとう。クリックするとメールが作成され、本文と顧客のメールアドレスが挿入され、請求書のコピーが添付される次のコードがあります。2 つの質問があります。1 つは、添付ファイルの名前を変更することは可能ですか。現時点では、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
4

1 に答える 1

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
...
于 2012-05-22T18:57:14.437 に答える