0

クエリの 1 つ (UpcomingBirthday) にある電子メール アドレスに電子メールを送信する関数を作成しようとしています。私はこのコードを関数に入れ、次にマクロ autoexec に入れたので、データベースをロードすると実行されます。

Public Function EmailSend()
Dim imsg As Object
Dim iconf As Object
Dim flds As Object
Dim schema As String

Set imsg = CreateObject("CDO.Message")
Set iconf = CreateObject("CDO.Configuration")
Set flds = iconf.Fields


schema = "http://schemas.microsoft.com/cdo/configuration/"
flds.Item(schema & "sendusing") = cdoSendUsingPort
flds.Item(schema & "smtpserver") = "smtp.live.com"
flds.Item(schema & "smtpserverport") = 25
flds.Item(schema & "smtpauthenticate") = cdoBasic
flds.Item(schema & "sendusername") = "MyEmail@hotmail.com"
flds.Item(schema & "sendpassword") = "MyPassword"
flds.Item(schema & "smtpusessl") = False
flds.Update

With imsg
    Call EmailSend(UpcomingBirthday.[Email], "MyEmail@hotmail.com", "Birthday Promotion!", "<html>Happy Birthday! <p> Our records indicate that you're eligible for a birthday promotion.</p></html.")
    Set .Configuration = iconf
    .Send
End With

Set iconf = Nothing
Set imsg = Nothing
Set flds = Nothing
 End Function

このコードを実行しようとすると、「実行時エラー 424 - オブジェクトが必要です」と表示され、デバッグに移動すると次の行が強調表示されます: Call EmailSend(UpcomingBirthday.[Email], "MyEmail@hotmail.com", "誕生日のプロモーション!」など.だから私がする必要があるのは、クエリ「UpcomingBirthday」の列「Email」の値を入力してから、それらに電子メールを送信することです。

このエラーを修正するために何をする必要があるかを教えてくれる人がいれば、それは素晴らしいことです! また、コードをスキャンして、それが問題ないかどうかを確認することもできますか (動作するはずです)? ありがとう!:)

4

1 に答える 1

0

中のCall EmailSend発言にPublic Function EmailSendは明らかに問題があります。imsgCDO.Messageオブジェクト)のプロパティに値を割り当てたい場合は、次のようにします

With imsg
    .To = "recipient@example.com"
    .From = "MyEmail@hotmail.com"
    .Subject = "Birthday Promotion!"
    '' and so on
    .Send
End With

UpcomingBirthdayまた、別の場所で定義されているため、実際に何が何であるかはわかりません。

手間を省いて、SendEmailここからダウンロードできる機能を使用することをお勧めします。

http://www.cpearson.com/excel/Email.aspx

于 2013-04-08T23:00:58.947 に答える