我將 97 Access 資料庫轉換為 Access 2013 32 位元。該資料庫現在在 Windows 7 中崩潰,但在 Windows 2012 R2 中運作正常。
如果我將資料庫複製到PC上,第一次打開資料庫時,它不會崩潰,但之後每次都會崩潰。
此查詢始終會導致 Windows 7 中的 Access 崩潰,但 Windows Server 2012 中不會崩潰:
UPDATE BatchHdr SET BatchHdr.RecCount = Val(Nz(DCount("[EntryID]","BatchDtl","[BatchID] = " & [BatchID]),0)), BatchHdr.Errors = Val(Nz(DCount("[EntryID]","BatchDtl","[Er] is not null and [BatchID]=" & [BatchID]),0)), BatchHdr.Warnings = Val(Nz(DCount("[EntryID]","BatchDtl","[Warning] is not null and [BatchID]=" & [BatchID]),0)), BatchHdr.NeedsChecked = IIf(DCount("[BatchID]","BatchDtl","[Checked] = false and [BatchID] = " & [BatchID])>0,True,False) WHERE (((BatchHdr.Status)<>"Exported" And (BatchHdr.Status)=[Forms]![BatchHeader]![MyStatus])) WITH OWNERACCESS OPTION;
我不知道如何讓這個資料庫在 Windows 7 中工作。
由於使用了 32 位元 vba 程式碼,因此必須使用 Access 32 位元。
我收到一條錯誤訊息:
APP NAME: MSACCESS.EXE
FAULT MODULE: OLEAUT32.DLL
FAULT MODULE VERSION: 6.1.7601.18679
EXCEPTION CODE: C0000005
答案1
聽起來這可能是 Windows 7 無法處理的快取問題。
我找到了一個指南這裡這解釋瞭如何在關閉時清除訪問快取。
- 按一下檔案 > 選項 > 目前資料庫
- 捲動至“快取 Web 服務和 Sharepoints 表”
- 勾選“使用與 Microsoft Access 2010 及更高版本相容的快取格式”
- 勾選“關閉時清除快取”
- 點擊“確定”
- 重新啟動 Access 以使變更生效。
這應該可以防止 Access 在開啟或重新開啟時崩潰。