Windows 7에서는 Access 2013 32비트가 충돌하지만 Server 2012 R2에서는 충돌하지 않습니다.

Windows 7에서는 Access 2013 32비트가 충돌하지만 Server 2012 R2에서는 충돌하지 않습니다.

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에서 처리할 수 없는 캐시 문제인 것 같습니다.

가이드를 찾았어요여기닫을 때 액세스 캐시를 지우는 방법을 설명합니다.

  1. 파일 > 옵션 > 현재 데이터베이스를 클릭합니다.
  2. "웹 서비스 및 공유 포인트 캐싱 테이블"로 스크롤합니다.
  3. "Microsoft Access 2010 이상과 호환되는 캐시 형식 사용"을 선택하십시오.
  4. "닫을 때 캐시 지우기"를 확인하십시오.
  5. "확인"을 클릭하세요
  6. 변경 사항을 적용하려면 Access를 다시 시작하세요.

이렇게 하면 Access를 열거나 다시 열 때 Access가 충돌하는 것을 방지할 수 있습니다.

관련 정보