小さい会社の1人SEの開発記というか奮戦記

  1. Access
  2. 3053 view

DoCmd.SendObjectを使ってアクセスのマクロから電子メールを発信する【Access マクロ】

DoCmd.SendObject を使ってアクセスマクロからメールを発信するサンプルです。Outlookを使っていて、凝ったことをしようと思わなければこれが一番簡単にマクロから電子メールを発信する事ができると思います。

条件整理

今回は細かい条件を付け、「アクセスマクロの標準機能」だけで処理を組んでみようと思います。

メール Microsoft Outlook が正常動作している
テーブル T_テーブル1
クエリ Q_クエリ1
Q_クエリ1
=0件
本文だけのメールで「今日のアラームリストはありません」と配信
Q_クエリ1
>0件
Q_クエリ1をエクセルにしてメールに添付、「本日のアラームリスト」としてメール配信

マクロで件数を評価する

件数を評価するため簡単なマクロで説明します。VBA的に記述すると以下となります。

If Q_クエリの件数 = 0 Then

MsgBox “クエリの件数は0件です”

Else

MsgBox “クエリの件数は0件より多い”

End If

処理結果

詳細解説

以下手順に沿って詳細を説明していきます。

プログラムフロー「If」

右側のアクションカタログの中からプログラムフロー「If」をマクロの処理分岐したいところの前にドラッグ&ドロップします。

If DCount(“*”,”Q_クエリ1″)=0 Then

簡単に言うと DCount(“*”,クエリ名称) でそのクエリの件数を表します。
=0 なのでそのクエリが0件の場合という事になります。

Else

「Else の追加」で追加されます。
If文が成立しなかった場合に処理が走ります。DCountはマイナス値にはならないのでそのクエリの件数が0より大きいという意味です。

If文の最後

VBAで言うところの End If です。プログラムフロー「If」をドラッグ&ドロップした時点で追加されています。

メール発信にマクロを修正

「メッセージボックス」 → 「データベースオブジェクトの電子メール送信」に修正を加えます。
今回はオブジェクトの種類:クエリ
出力ファイル形式:Excel ブック (*.xlsx)
メッセージの編集:いいえ → そのままメールが発信されます。はい を選ぶとOutlookで発信メール編集中になります。

まとめ

VBAのスキルがある人はおそらくマクロで引っ掛かることは何もありません。

しいて言えば件数を調べる「DCount」で引っ掛かるかな?というところですが、「Select Count(*) From クエリ名」で同じことができますのでなんとでもなると思います。

関連記事:「アクセスのマクロからアラームメールを発信する【Access マクロ】
関連記事:「Basp21を使ってアクセスのマクロから電子メールを発信する【Access マクロ】
関連記事:「CDO.Messageを使ってアクセスのマクロから電子メールを発信する【Access マクロ】

 

Accessの最近記事

  1. Accessの数値型ではまる・・・。

  2. クエリで日付から曜日を算出する。【Access】

  3. クエリのLikeをバイナリーモードで処理したい【Access】

  4. アクセスのマクロ機能を初心者に解説【Access】

  5. NZ関数でNullを上手く使う【Access】

関連記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


お薦め書籍

最近の記事

  1. Access

    Accessの数値型ではまる・・・。
  2. Excel

    日本語をエンコードする【Excel VBA】
  3. Access

    クエリで日付から曜日を算出する。【Access】
  4. PCパーツ

    ASUS AMD Ryzen 4000 シリーズ搭載小型ベア…
  5. Microsoft365

    コンデジをTeamsのWebカメラに使う
  6. SQL Server

    SQL文で今日から7日前までを指定する