2016-07-22 3 views
0

Sorceri's answer on StackOverflowのコードを変更しようとしましたが、これはOutlookを使用してメールを送信する方法を示しています。私はこれを修正して、データベースの選択されたエントリに固有のカスタム電子メールテンプレートを提供しようとしました。残念ながら、コードは機能しません。内蔵のVBAエディタは、線 "oMail.Body"、 "oMail.subject"、 "oMail.to"を赤で強調表示します。MS Access - Outlookを使用した自動メールテンプレート

これは非常に便利な機能であることがわかりました。スクリプト/データベースは基本的にユーザーのコピーと貼り付けをすべて処理します。


、コードが失敗した理由を見つけやすいように見えた「明示的なオプション」を使用した後の溶液

- 変数が適切に定義されていなかったが(私はいくつかの「o」の追加、および取りある程度離れている)。

  1. PUT「ます。Option Explicit」フォームのVBAページの上部に主にアンドレによって修正、次のコードを使用します(フォームのモジュール)

  2. :ここでは、完成したコードです。

    ます。Private Sub Emailtemplatebtn_Click()

    Dim App As Outlook.Application 
    Dim oMail As MailItem 
    Set App = CreateObject("Outlook.application") 
    
    
    Set oMail = App.CreateItem(olMailItem) 
    oMail.Body = "Dear" & Me![Forename] & "," & vbCrLf & vbCrLf & "It has been six months or longer since I last contacted you. Have there been any big gains with regard to impact?" 
    oMail.Subject = Me![Project name] & "- check up" 
    oMail.To = Me!Email 
    oMail.Send 
    Set oMail = Nothing 
    Set App = Nothing 
    
    End Sub 
    

変更oMail.sendあなたが送信する前に電子メールへの編集を行いたい場合oMail.displayへ。

答えて

2

あなたは

Dim oMail As MailItem 

( "O" を注意してください)

をしたいと&の構文はvariable & "string"で、スペースに注意し、行の2 &を使用しないでください。

これらの行は次のようになります。

oMail.Body = "Dear" & [Forename] & "," & vbCrLf & vbCrLf & "It has been six months or longer since I last contacted you. Have there been any big gains with regard to impact?" 
oMail.Subject = [Project name] & "- check up" 
oMail.To = Email 

変数は、フォーム上のコントロールしている場合、Me!ForenameまたはMe![Project name]を書くために優れているので、アクセスがどこにそれらを検索する場所を知っています。

+0

ありがとうございます。 &、変数、文字列の意味を明確にすることができますか(oMail.bodyなど、自分のコードの行を編集することが理想的です)。 – Idios

+0

コードをいただきありがとうございます - 私は&sを実装する方法を正確に見ています(しかし、あなたの説明は私にも正しいことを許すはずでした!)。 – Idios

+0

私のコードで私の「私!私!」からたくさんの "私!"を削除しました。読みやすいように見えて、問題なく正しいフィールドを見つけることができました。 !)。なぜ私を使用するのが有利なのですか?コントロールとは何ですか? 3番目の質問:「私!Forename」と「私!Forename」の違いは何ですか? – Idios

関連する問題