特定のMDBが使用中かどうかを判断するには?

解決


まる  2003-04-18 15:18:17  No: 77754  IP: [192.*.*.*]

Access2000を使用しています。

マルチユーザ環境で使用しているMDBがあるのですが、これを定期的に修復/最適化するためのサブ的なMDBを作成しました。
これをWindows2000のタスクマネージャと組み合わせて活用したいのですが、問題と考えているのが、最適化元のMDBが使用中であることです。

タスクはAM5:00頃に実行させるつもりですので、実際に使用中であることはまずあり得ないのですが、MDBはバグなのかどうかはよく分かりませんが使用中でもないのに解放できていないことがあるような気がします。

私の案としては、
①使用中であれば、その日は最適化中止
②実際に使用中であることはあり得ないので、強制切断
です。

この質問は、①を採用する場合に必要となる内容です。
②は、強制切断はできるだけしたくないという思いがありますが、もし参考になることをご存じの方がおられれば是非教えてください。

また、私の①、②案以外にもいい方法があれば教えてください。

長い質問ですみません。

編集 削除
名前なし  2003-04-18 16:02:27  No: 77755  IP: [192.*.*.*]

ldb ファイルの存在を調べればどうですか?

編集 削除
まる  2003-04-18 16:23:50  No: 77756  IP: [192.*.*.*]

IDBファイルの存在は、どうすれば取得できますか?

編集 削除
nanashi  2003-04-18 16:34:51  No: 77757  IP: [192.*.*.*]

mdbファイルを使用中は mdbファイルと同じフォルダ内に
同じファイル名で拡張子がLDBになっているファイルがあります(IDBじゃありません)。
Dir関数などを使ってldbファイルの存在をチェックしてみてください。

まー別に使用中かどうか調べなくてもOn Error ステートメントで最適化処理を囲っちゃても良いと思いますが。

編集 削除
まる  2003-04-21 10:32:08  No: 77758  IP: [192.*.*.*]

nanashiさん、ありがとうございました。

私の個人的な好みですがOn Errorステートメントは嫌いなので
Dir関数を使用し、最適化を中止することにしました。

編集 削除