1. ホーム
  2. vba

[解決済み] Accessからレポートを自動でメール送信

2022-03-08 11:54:31

質問

Accessから特定の時刻に自動的にレポートを電子メールで送信する必要があります。

Accessでマクロを作成した経験は本当に少ないのですが、特定の時刻に自動的にメールを送信するマクロを作成してみました。 今のところこんな感じです。

if [time] = "12:00:00 AM" then
emaildatabaseobject
Object Type Report
Object Name NameofReport
Output Format PDF 
To [email protected]
CC
BCC
Subject test

解決方法は?

個人的には、MS Accessのマクロを使用して、メール送信の操作のみを行うことをお勧めします。 EmailDatabaseObject アクションを実行します。 SendObject のメソッドを使用します。 DoCmd オブジェクトをVBAで作成するか、VBAでActiveXを使用してインストールされた電子メールクライアントを自動化することで実現できます)。

その後 Windowsタスクスケジューラ を使用して、指定された時間またはスケジュールでMS Accessマクロを呼び出すことができます。

MS Accessマクロを起動するスケジュールタスクを作成するには、次の手順を実行します。

  • Windowsのスタートメニューからタスクスケジューラーを開くか、または、以下のコマンドを実行します。 taskschd.msc
  • を選択します。 タスクスケジューラライブラリ 左側のペインから(または、この下に独自のフォルダを作成します。)
  • 右側から アクション ペインで タスクの作成
  • のような明らかなオプションを入力します。 名前 , 説明 などを適宜選択する。
  • を追加します。 トリガー マクロを実行したい時間/スケジュールを元に作成します。
  • を追加します。 アクション を選択し プログラムを開始する
  • の場所を参照し、選択します。 MSACCESS.exe を実行します。
  • での 引数の追加 エディットボックスで、データベースのファイルパスを指定し (パスにスペースがある場合は二重引用符で囲む)、その後に /x コマンドラインスイッチとマクロの名前、例:

    "C:\Your Folder\Your Database.accdb" /x YourMacro
    
    

    または、マクロの中にSubMacroがある場合。

    "C:\Your Folder\Your Database.accdb" /x YourMacro.YourSubMacro
    
    

    MS Accessで利用可能なコマンドラインスイッチの詳細については、以下を参照してください。 こちら .