事前の動作確認方法
ファイルを直接実行
ではなく
タスクスケジューラ上のタスク右クリック ⇒ 実行する
で動作確認しよう。
『タスクスケジューラ経由で実行した時だけ動かない or 想定外の動作』
なんてことがよくある。
(Accessに限った話ではないけど)
タスク実行ユーザー
『SYSTEM』っていう名前のユーザーだとAccessが起動しないので注意。
(パスワード変更を気にしなくていいように『SYSTEM』を使いたいところだけどダメ)
『スリープなどによってユーザーがログアウト ⇒ タスクが実行されなかった』
なんてこともあるので、スリープまわりの設定も確認しておいた方がいい。
プログラム開始の設定
『Microsoft365のAccess』と『Accessランタイム』が共存する環境で、 プログラム/スクリプト
にAccessファイルを設定するとランタイムで起動してしまう。
(本当はMicrosoft365で起動してほしいのに…)
なので、下記のように設定するのがおススメ。
"C:\Program Files (x86)\Microsoft Office\root\Office16\MSACCESS.EXE"
"C:\Users\d\tester.accdb"
Accessファイルを起動するのではなく、MSACCESS.EXEを起動する。
MSACCESS.EXEの引数でAccessファイルのパスを渡してあげる。
ダブルクオテーションの有無に注意。
(ファイルパスは囲っておいた方がいい)
Accessファイルに引数渡したい時は 引数の追加(オプション)
を下記のようにすればOK。
"C:\Users\d\tester.accdb" /cmd "accdbに渡す引数値"
Access内で扱うファイルパス
ファイル入出力まわりで想定通りの動作にならなかったら、下記リンク先の内容を試すのもアリ。
バージョン
Windows 10 Pro 21H2 OSビルド 19045.2311
Microsoft Access for Microsoft 365 MSO (バージョン 2209 ビルド 16.0.15726.20188) 32 ビット