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가 열린 후에는 충돌이 발생했습니다.
32bit vba 코드를 사용하고 있으므로 Access 32bit를 사용해야 합니다.
오류 메시지가 나타납니다:
APP NAME: MSACCESS.EXE
FAULT MODULE: OLEAUT32.DLL
FAULT MODULE VERSION: 6.1.7601.18679
EXCEPTION CODE: C0000005
답변1
Windows 7에서 처리할 수 없는 캐시 문제인 것 같습니다.
가이드를 찾았어요여기닫을 때 액세스 캐시를 지우는 방법을 설명합니다.
- 파일 > 옵션 > 현재 데이터베이스를 클릭합니다.
- "웹 서비스 및 공유 포인트 캐싱 테이블"로 스크롤합니다.
- "Microsoft Access 2010 이상과 호환되는 캐시 형식 사용"을 선택하십시오.
- "닫을 때 캐시 지우기"를 확인하십시오.
- "확인"을 클릭하세요
- 변경 사항을 적용하려면 Access를 다시 시작하세요.
이렇게 하면 Access를 열거나 다시 열 때 Access가 충돌하는 것을 방지할 수 있습니다.