また引数のeditmessageをFalseに設定した場合でもアプリケーションが起動してしまいます。
なにか回避策はないでしょうか。
使用コード adpで作成
DoCmd.SendObject acSendNoObject, , , str_To, , , str_Subject, str_Body, False
環境
OS:WindowsXP
Access:Access2007
備考
Access2000での動作は問題ありません。
editmessageをFalseに設定した場合でもアプリケーションが起動してしまいますが。
以上よろしくお願いします。
> 使用コード adpで作成
> DoCmd.SendObject acSendNoObject, , , str_To, , , str_Subject, str_Body, False
私のところでもAccess 2007 で、SendObjectすると、
2296というエラーが発生しましたが、下記を対応を行ったところ
何故か、Windows Live メールでも送信できるようになりました。
参考になるかわかりませんが、対応した手順を記しておきます。
手順1:DoCmd.SendObject acSendNoObject, , , str_To, , , str_Subject, str_Body, False
をOutputFormatを指定するよう修正
例:DoCmd.SendObject acSendNoObject, , acFormatTXT, str_To, , , str_Subject, str_Body, False
※テキストで送信する例です。リッチテキストやHTMLメールで送信する場合は、
acFormatRTF、acFormatHTML を指定しても良いです。
私の端末では元々、テキストメールで送信する設定をWindows Liveメールに行っていたので
acFormatTXT を指定しました。
手順2:デバッグモードでDoCmd.SendObject を実行している箇所を実行
(恐らくこれでもまだエラーが出ると思います)
手順3:元のコード
「DoCmd.SendObject acSendNoObject, , , str_To, , , str_Subject, str_Body, False」
で実行
理由はわかりませんが、私の場合は、これでメール送信できるようになりました。
もし上記でもダメな場合は、メーラーの情報が書きかえられてしまった等
(例:Accessをインストールした後にWindows Live メールをインストールした等)
が考えられるので、Accessを再インストールするしかなさそうです。
いずれにしても、SendObjectはいろいろと環境に左右されやすい
旧来から問題のあるオブジェクトですので、確実にメール送信されたい場合は、
BASP21 を参照設定して使った方が無難です。
http://www.hi-ho.ne.jp/babaq/basp21.html
ご査収の程、宜しくお願いします。
--
けろ-みお(Mio Yoshida)
Microsoft MVP for ASP/ASP.NET - Jan.2008 - Dec.2010