上次更新日期:2020 年 3 月 24 日
問題
如果您同時安裝了 Office 365 和使用 MSI 安裝的舊版 Office,且您有使用 OLEDB 介面或 ADO.Net 介面的程式,您可能會遇到錯誤,指出即使在關閉連線之後,資料庫仍處於鎖定。
只有當您安裝 Office 365 版本 2002,且已透過 MSI 安裝舊版 Office 時,才會發生此問題。 例如,您可能已安裝 Office 365 與 2013 Access 執行階段或 2010 Access 資料庫引擎可轉散發套件。
案例
如果您在開啟並關閉資料庫檔案的連線之後,嘗試刪除 .Net 程式中的資料庫檔案,您可能會看到下列異常:
System.IO.Exception: 程序無法存取檔案 '資料庫路徑',因為檔案正由另一個程序使用。
如果您查看資料庫的位置,您也會看到 Ace 資料庫鎖定檔案 (databasename.laccdb) 仍存在。
通常在一段時間 (從數秒到幾分鐘) 之後,將會移除該鎖定檔案,並還原對資料庫的存取。
從 Office 365 版本 2002 開始,隨附於 Office 365 的 Ace 版本將是 COM OLEDB 介面的提供者,而在舊版中,則使用隨附於 MSI 產品中的 Ace 版本。
行為有所不同,特別是在 Office 365 中,連線會預設使用 OLEDB 資源集區,而在 MSI 中,連線不會預設使用集區。 此情況的影響是,連線不會在關閉/損毀時立即釋出,因為系統會將連線保留,以便可能時重複使用。 不過,未釋出資料庫檔案上鎖定的影響,會持續直到集區釋出連線為止。
狀態:已修正
此問題現在已修正。 如果您啟動 Access,請依序按一下 [檔案]、[帳戶]、[更新選項] 和 [立即更新],這可確保您擁有最新的版本,且所有版本都應有可用的修正程式。
如果您使用版本 2002 (目前通道),則此問題會在組建 16.0.12527.20278 或更新版本中修正。
如果您使用版本 2003 (目前通道 (預覽)),則此問題會在組建 16.0.12624.20176 或更新版本中修正。
如果您使用版本 2004 (Beta 版通道),則此問題會在組建 16.0.12705.10000 或更新版本中修正。
此問題不會影響其他版本。