アクセス データベース (.accdb) からのデータをクライアント アプリに提供する、Java で記述された単純なサーバーがあります。
データは、リンクされた Excel ワークブック (.xlsx) 内の複数のワークシートのデータを結合するデータベース内のクエリから取得されます。
Excel ワークブックは所有者によって定期的に更新される必要があり、データベースは一定の稼働時間が必要であり、データベースが開いているときに Excel がファイルをロックするため、これはうまくいきませんでした。
そこで、この問題を回避するために、ワークブックのコピーから実行するようにデータベースを変更しました。Javaサーバーを強制終了するバッチスクリプトを作成したため、データベースへの接続が閉じられ、コピーされたExcelワークブックのロックが解除されました。次に、元のコンテンツをコピーしたファイルの場所にコピーし、サーバーを再起動して、データベース内のデータを更新します。このバッチ ファイルを毎日実行するように Windows タスク スケジューラを設定しました。
ずさんな解決策ですが、うまくいきました。とか、そう思いました。バッチ ファイルは 1 回だけ実行され、それ以降実行されていません。
だから、これに別の絆創膏を投げる前に、ここで聞いてみようと思いました. 特定のユーザーがファイルにアクセスする必要があるときにすべての接続を閉じるように元の Excel ワークブックをセットアップする方法はありますか? それができれば、切断後にサーバーに再接続を試行させるだけで済みますが、これは難しいことではありません。