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


asami  2012-01-19 22:52:15  No: 147461

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

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

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

教えて下さい。


魔界の仮面弁士  2012-01-20 20:23:23  No: 147462

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

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

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

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


asami  2012-01-20 20:42:52  No: 147463

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

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

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

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

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

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

よろしくお願いします。


魔界の仮面弁士  2012-01-21 00:50:15  No: 147464

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

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


くだん  2012-01-21 01:36:05  No: 147465

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 でプロセスが残る問題の質問のときにも指摘したけどもね!!!


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加