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 で動作させる方法がわかりません。Access を互換モードで実行してみましたが、最初はクラッシュしませんが、1、2 回開いた後にクラッシュします。
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以降と互換性のあるキャッシュ形式を使用する」をチェックします
- 「閉じるときにキャッシュをクリアする」をチェックする
- 「OK」をクリック
- 変更を有効にするには、Access を再起動します。
これにより、Access を開いたときや再度開いたときにクラッシュすることがなくなります。