ACCESSの起動チェックに関して


asami  2012-01-19 13:52:15  No: 147461  IP: [192.*.*.*]

VB側からACCESSが起動をさせるプログラムを作成していますが、
その際に、二重起動をチェックしようと考えています。

ネット等で検索した場合、DLookup等を使えば良いとありましたが、VB
では使えず。。。

何かうまくVBでACCESSの起動をチェックするような事はできないでしょうか

教えて下さい。

編集 削除
魔界の仮面弁士  2012-01-20 11:23:23  No: 147462  IP: [192.*.*.*]

> ACCESSが起動をさせるプログラム
「Accessが起動をさせる」ではなく
「Accessを起動させる」の間違いでしょうか?

元の文だと、「Access 上から(何かを)起動させる」話に見えます。


> その際に、二重起動をチェックしようと考えています。
それって、MSACCESS.EXE 本体の二重起動の話ですか?
それとも、そこに開かせる mdb / accdb / adp 等の話ですか?


> 何かうまくVBでACCESSの起動をチェックするような事はできないでしょうか
・GetObject を使う。
・WMI の Win32_Process クラスで捜索。
・FindWindowEx API 等で対象ウィンドウを探す。
・Running Object Table から調べる。

編集 削除
asami  2012-01-20 11:42:52  No: 147463  IP: [192.*.*.*]

教えて頂きありがとうございます。

ご指摘の通り、「ACCESS”を”起動させる」の間違いでした。。。

二重起動というのは、mdbの話です。

VB側からボタンが押された際に、同じmdbが起動していないか?のチェックを
しようとしています。

とした場合、教えて頂いた方法のどれを選択するのが最適でしょうか。。。

教えて頂けたら幸いです。

よろしくお願いします。

編集 削除
魔界の仮面弁士  2012-01-20 15:50:15  No: 147464  IP: [192.*.*.*]

> VB側からボタンが押された際に、同じmdbが起動していないか?
であれば、その mdb を排他モードで開かせれば良いと思います。

そうすれば、後から開こうとした方は実行時エラーになるので、
そのエラーをトラップすることで判定できます。

編集 削除
くだん  2012-01-20 16:36:05  No: 147465  IP: [192.*.*.*]

http://qanda.rakuten.ne.jp/qa7253380.html
http://madia.world.coocan.jp/cgi-bin/vbnet/wwwlng.cgi?print+201201/12010010.txt

asami YURI SAHO 
が同じところから投稿されてて、
yurix_1 って人の投稿したコードとコーディングルールが
同じだから聞くけど、

http://qanda.rakuten.ne.jp/qa7253380.html
> ※  Microsoft Access 9.0 Object Libraryを追加
ってことは Access VBA じゃなく、VB2008
のコードで、

> set accApp = CreateObject("Access.Application")
は VB6 時代のルールで、VB2008じゃ書いても
強制的に消されてしまうんだけど、
> ご指摘頂いたようにしたら問題なくできました!
ってどういうこと?

ついでに言えば、参照設定してるのに
CreateObject というのは理解してない人のコードだから。
Excel でプロセスが残る問題の質問のときにも指摘したけどもね!!!

編集 削除