• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アクセス2010のVBAについて教えて下さい)

アクセス2010のVBAについて教えてください

このQ&Aのポイント
  • アクセス2010のVBAについて教えてください
  • DoCmd.SendObject acSendNoObject, , acFormatTXT, RS!Email, "aaa@aaa.mil", , Subject, Body, TrueSetで「2498指定した式はいずれかの引数とデータ型が対応してません」というエラーで止まってしまいます。
  • 「RS!Email」を消すと、メールを生成するので、ここが違っているのは分かりましたが、どう直せばいいのかがわかりません。

質問者が選んだベストアンサー

  • ベストアンサー
  • m3_maki
  • ベストアンサー率64% (296/460)
回答No.1

前回の質問で > 生成するメールは1通、その本文に複数データを列記という形です。 ということですが、 取得した複数のレコードで、 「Email」 フィールドには すべて同じ値が入っている、ということでよろしいでしょうか? 一応、これを前提としての回答です。 > Do Until RS.EOF   ・ ・ ・ > Loop で EOF までループしていますから ループを抜けたところでは もう レコード がありません。 そこで RS!Email を参照しようとしてエラーになっています。 止まっているところで、イミディエイトウィンドウで ? RS!Email でエラー内容を確認してみてください。 で、解決策ですが、いろいろ考えられますね。 レコードセットをオープンしたときに EOF なら メールを作成せずに抜ける。 EOF でないなら EMail の値を保存し、ループ終了後、保存した値で送信。   Dim strEmail As String   strEMail = Nz(RS!Email, "")   DoCmd.SendObject acSendNoObject, , acFormatTXT, strEMail, "aaa@aaa.mil", , Subject, Body, True というところでしょうか。

Beginner37
質問者

お礼

できましたぁ!仰るとおりの記述追加で思い通り動くようになりました。 このAccess DBに一番やらせたいことができました。ここができなければ、DB作成自体をやめようと思っていました。メインの機能ができたので、もう少し作りこみます。分からない所が出てきたら、またよろしくお願いします。

関連するQ&A