お世話になります。
データベースを複数人で使用しており、そのうちの一人がAccessデータベースを立ち上げたままPCをスリープし退社しました。
翌日が休日で管理者の私だけ起動して分割テーブルのフィールドを修正しようとしたところ、.laccdbが立ち上がったままで修正できない、といった事態が発生しました。
これを回避するために、PCがスリープになったら同時にデータベースを強制終了する、といったことはVBAで実現できるでしょうか?あるいはその他に方法があればご教授いただければと思います。
よろしくお願いいたします。
PCがスリープに入ってしまうとCPUへの給電も止まるので、プログラムは止まってしまいます。
ですので、スリープに入る直前に発生するイベントがあればいいのですが、VBAにはないですね。APIならあるかも知れませんが、ちょっと検索してみた限りでは情報は見つかりませんでした。
Accessデータベースを立ち上げた放置するということはままあることなので、私は下記のような対策をしています。
各フォームのキーボードイベント、マウス移動イベントで、ユーザー操作を検知したら、その時刻をグロバール変数に格納する。
常に表示させてあるフォームのタイマーイベントで定期的にグロバール変数の時刻と現在時刻の時間差を求めて、その時間が設定した時間より長ければファイルを強制終了する。
強制終了する時間をスリープ待機時間より短く設定しておけば、スリープへ入る前に終了させることができます。
お世話になります。ありがとうございました!
チャレンジしてみます。
本当にここのサイトは勉強になります。