お世話になります。YamamotoSccと申します。
MDBファイル内に、フォーム、テーブルリンクを作成し、ODBC経由で
SQLServerを読み書きするアプリケーションを作成しております。
元々ACCESS2002、2010上で動作していた本アプリケーションについて、
此度ACCESS2013上で使用することとなり、動作検証を行った所、アプリケーション自体は
問題なく動作しましたが、フォームを全て閉じた後、ACCESS本体を右上の「×」を押して
終了、あるいは「ファイルタブ⇒閉じる」を選択しても何も反応せず、タスクマネージャーから
強制終了するしかない状態となります。
動作環境は以下の通りです。
・OS:Windows7 Professional
ACCESS2013:15.0.4631.1000
ODBCドライバ:6.01.7601.17514
いろいろ調べてみたところ、
・本事象が起きる端末と起きない端末がある。(上に挙げた動作環境は全て同じ)
・少量のデータの読み書きでは発生せず、大量データ読み書き時に発生する傾向がある。
・本事象発生時、タスクマネージャー上でのACCESSのプロセスは以下の状態になっている。
アプリケーションタブ「状態:実行中」
プロセスタブ「CPU使用率50%近く」「メモリ使用量:変動なし」
・ACCESSのオプション設定「閉じるときに最適化する」のチェック有無に関わらず発生する
といった状況です。
似たような事象と思わしき下記サイトの対策を試してみましたが、特に変わりはありませんでした。
複数コアの CPU 環境で実行中の Access が応答なしになる
http://support.microsoft.com/kb/2646068/ja
ACCESS2013 応答無しについて
http://answers.microsoft.com/ja-jp/office/forum/office\_2013\_release-access/access2013/362fdf47-2f4d-4d32-9be6-fb28d7621290
また、本事象と直接関係するか不明ですが、DoCmd.Closeを実行しても見た目上(※)はフォームが残ることがあり、
この時、ACCESSが終了しないケースが多いです。ただ、DoCmd.Closeが正しく動作し、フォームが閉じられた場合でも
ACCESSが終了しません。
※フォーム上のオブジェクトにフォーカスが当たらないので、ただ見た目上存在するような状態です
本アプリケーションはPCに詳しくないエンドユーザが使用するため、常に「強制終了」を
行う運用は避けたいことと、CPU使用率が高い状態ということは、何らかの処理を行っていると思われるため、
そもそも「強制終了」自体に問題が無いかという懸念もありますので、解決策をお御教授願えませんでしょうか?