忘れないようにメモ

ACCESS に引数を指定して開く方法 (Command文)

ACCESSを開く時、引数を与えることができます。
つまり例として、ACCESSを開く時、”ABC”という文字を与えて開くことができます。

◇たとえば、ACCESSを開く時に”ABC”ならば処理1、
“DEF”ならば処理2、というような実行命令を可変させたい場合、とか・・・

◇日付を与えてACCESSを開いたなら自動的にその日付で計算する、とか・・・

◆実際にテストで試してみましょう

(1) まず、空のDatabase1.accdbを作ります

(2)  モジュールに次の3行のみのFunctionを作ります。

Function procTEST()
     MsgBox (Command)
End Function

これだけです。
モジュール名は何でもOKで、Module1としておきます。

(3) 自動実行マクロを作ります。
命令は、「プロシージャの実行」
プロシージャ名は、「procTEST()」
マクロの保存名は、autoexec

(4) これで一度Database1.accdbを保存して閉じます。

(5) 次にDatabase1.accdbのショートカットを作ります。

(6) ショートカットを右クリしてプロパティを表示
リンク先に次のように書き加えます。(赤字の部分)

  C:\Temp\Database1.accdb /cmd “ABC”

(7) プロパティのダイログのOKボタンを押して閉じます。

(8) これでショートカットをダブクリして実行してみます。
ACCESS が起動して、次に”ABC”というメッセージボックスが開きます。

◆ つまり・・・
ACCESS の起動させるコマンド文に、”/cmd XXXXXXXX” という引数を付けると

ACCESS内部では、/cmd 以下の文字が、
Command という関数で取り出せるということです。

◆ もし、/cmd 以下の指定がなかったらどうなるのか?
Command という命令文で取り出せる文字は0バイトの文字でした。
Nullではありませんでした。

◆コマンドラインから実行させたい場合
  msaccess.exe “C:\Temp\Database1.accdb” /cmd “ABC”
  ※命令文のmsaccess.exeが無いとCommand関数はcmdを読み取ってくれません。
  ※ ” の位置に注意して下さい。

試してみて下さい。