• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:タスクマネージャーのプロセスから消えなくなる)

タスクマネージャーのプロセスが消えない問題とは?

このQ&Aのポイント
  • MSACCESS.EXE*32がタスクマネージャーのプロセスタブに残ってしまう問題が発生しています。
  • VBのフォームを閉じるとMSACCESS.EXE*32は消えますが、フォームからアクセスを開いて閉じるとプロセスが溜まり、エラーが発生します。
  • VBからアクセスを開いて閉じる際にプロセスを終了させる方法について知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

VB 7.0 (=VB.NET 2002)以降のVisual Basicでは,それ以前のVisual Basicに比べ,COMの取り扱いが煩雑になっています。 ・Nothingの代入はCOMの解放を意味しません。フィールド変数への代入などを除くと,通常無意味です ・COMのオブジェクトは,全て,確実に System.Runtime.InteropServices.Marshal.ReleaseComObject を呼び出して解放する必要があります 今回の場合, > AccApp = Nothing のかわりに, System.Runtime.InteropServices.Marshal.ReleaseComObject(AccApp) としてください。 これにより,IUnknown.Releaseが呼び出されて参照カウントが減少し,Accessへの参照がなくなります。

CSNGZQGCX
質問者

お礼

AccApp = Nothingは無意味なのですか。 System.Runtime.InteropServices.Marshal.ReleaseComObject(AccApp) に変更して確認したら、ちゃんとタスクマネージャーから消えました! ありがとうございました。大変参考になりました。

関連するQ&A