- ベストアンサー
アクセスの連続実行のやり方
アクセスで作ったプログラムのいくつかを連続実行するマクロ、又はvbaを 教えてください。 プログラムはオートエグゼで立ち上げ後、自動終了します。 これらを(1)を立ち上げ、終了後 (2)を立ち上げ、終了 (3)を立ち上げ、終了 というように順次実行する という内容です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No1.mdbのMDBの処理はマクロと言う事ですね? では、No1.mdbにNo2.mdbを開く為のモジュールを作成します。 これは必ずファンクションにして下さい。 ------------------------------------------------------------ Public Function pFunオープン() Dim 実行 As Variant 実行 = Shell("C:\Program Files\Microsoft Office\Office\msaccess.exe " & _ "G:\Access\No2.mdb /x AutoExec", 3) Exit Function End Function ------------------------------------------------------- これでNo2.mdbのマクロのAutoExecを実行させる処理ができます。 No1.mdbのマクロの処理の最後に『プロシージャーの実行』を追加し、 プロシージャー名に『pFunオープン()』を記入して、上記のファンクションの実行をさせればOKです。 No3.mdbについても同様にすればOKです。 マクロ名をAutoExecにされているそうですが、 自動で実行させるのであればわかりやすいようにそれぞれの処理の名称にしてみるのもよいでしょうね。 もちろんAutoExecのままでも実行は可能です。
その他の回答 (2)
- ruru0707
- ベストアンサー率68% (20/29)
『コマンドライン引数が不正』のエラーが出る場合は 『C:\Program Files\Microsoft Office\Office\msaccess.exe 』 の場所にaccessのEXEが存在しないか、 実行するMdbがパス先にないかのいづれかが考えられますが、 デスクトップのパスはあってそうなカンジですので、 accessのEXEの場所があってるか確認してみて下さい。
お礼
解決しました。実行 = Shell("C:\Program Files\Microsoft Office\Office\msaccess.exe ""G:\Access\No2.mdb", 3) で出来ました。ありがとうございます。
- ruru0707
- ベストアンサー率68% (20/29)
(1)を立ち上げ、終了後、(2)を立ち上げ終了・・・とありますが、(1)とか(2)というのはMDBですか? 連続して実行したいプログラムが何?なのかをもう少し説明して下さい。
補足
アクセス2000で作成したいくつかのMDBプログラム(例えば NO1.MDB、NO2.MDB、NO3.MDBと3個のプログラム)でNO1.MDBの結果をNO2.MDBにリンク、NO2.MDBの結果をNO3.MDBにリンクしています。 (それぞれはオートエグゼで開くと同時にマクロ処理でクローズします) 現在手作業で実行していますがそれを連続実行したいのです。
補足
デスクトップにNo1.mdb No2.mdb No3.mdbをつくりNo1.mdb のモジュールに以下を書きました。 Public Function pFunオープン() Dim 実行 As Variant 実行 = Shell("C:\Program Files\Microsoft Office\Office\MSACCESS.exe " & _ "C:\Documents and Settings\e_take\デスクトップ\No2.mdb /x AutoExec", 3) Exit Function End Function そしてNo1.mdbのマクロに『プロシージャーの実行』を追加し、 プロシージャー名に『pFunオープン()』を記入して、上記のファンクションの実行をさせましたがコマンドライン引数が不正となります。 解決策を教えてください