보통: 기본 매크로, 코딩 및 상호 운용성 기술이 필요합니다.이 문서는 Microsoft 액세스 데이터베이스(.mdb)와 Microsoft 액세스 프로젝트(.adp)에 적용됩니다.

증상

레코드 원본이 동일한 여러 양식을 사용하는 데이터를 편집하면 다음과 같은 오류 메시지가 나타날 수 있습니다.

이 레코드는 편집을 시작한 이후 다른 사용자가 변경했습니다. 레코드를 저장하면 다른 사용자가 변경한 내용을 덮어씁니다. 변경 내용을 클립보드에 복사하면 다른 사용자가 입력한 값을 보고 변경하려는 경우 변경 내용을 다시 붙여넣습니다.

그런 다음 다음 세 단추 중 하나를 클릭할 수 있습니다.

  • 레코드 저장

  • 클립보드에 복사

  • 드롭 변경 사항

원인

이 문제는 동일한 데이터 원본을 동시에 업데이트하는 두 양식을 열 때 발생합니다. 첫 번째 양식은 레코드 또는 레코드에 편집 잠금을 설정한 다음 두 번째 양식은 레코드 또는 레코드를 변경하고 변경 내용을 저장합니다. 첫 번째 양식이 닫혀 테이블에 다시 쓰려고 하면 두 번째 양식에 의해 변경된 내용이 검색됩니다. 이렇게 하면 오류가 반환됩니다.

해결 방법

이 동작을 해결하려면 Microsoft Access 데이터베이스(.mdb) 파일에 나열된 두 가지 방법 중 하나 또는 Access 프로젝트(.adp) 파일에 대해 나열된 메서드 중 하나를 사용합니다.

Microsoft 액세스 데이터베이스(.mdb) 파일의 경우

방법 1

양식의 RecordLocks 속성을 편집된 레코드로설정합니다. 이렇게 하려면 다음 단계를 따르십시오.

  1. 디자인 뷰에서 양식을 엽니다. 참고 사항 Access 2007에서 3단계로 이동합니다.

  2. 보기 메뉴에서 속성을 클릭합니다.

  3. 데이터 탭에서 레코드 잠금 속성을 편집된 레코드로변경합니다.

방법 2

레코드를 저장 하려면 두 양식의 OnDeactivate 이벤트 프로시저에 코드를 추가 합니다. 이렇게 하려면 다음 단계를 따르십시오.

  1. 디자인 뷰에서 양식을 엽니다. 참고 사항 Access 2007에서 4단계로 이동합니다.

  2. 보기 메뉴에서 속성을 클릭합니다.

  3. 편집 메뉴에서 양식 선택을클릭합니다.

  4. 이벤트 탭에서 OnDeactivate 속성 상자를 마우스 오른쪽 단추로 클릭한 다음 빌드를클릭합니다.

  5. 빌더 선택 상자에서 코드 작성기를 클릭한 다음 확인을클릭합니다.

  6. 다음 코드를 입력하거나 붙여넣습니다.

    DoCmd.RunCommand acCmdSaveRecord
  7. 디자인 뷰에서 두 번째 양식을 열고 2~6단계를 반복합니다.

Microsoft 액세스 프로젝트(.adp) 파일의 경우:

레코드를 저장 하려면 두 양식의 OnDeactivate 및 OnActivate 이벤트 프로시저에 코드를 추가 합니다. 이렇게 하려면 다음 단계를 따르십시오.

  1. 디자인 뷰에서 양식을 엽니다. 참고 사항 Access 2007에서 4단계로 이동합니다.

  2. 보기 메뉴에서 속성을 클릭합니다.

  3. 편집 메뉴에서 양식 선택을클릭합니다.

  4. 이벤트 탭에서 OnDeactivate 속성 상자를 마우스 오른쪽 단추로 클릭한 다음 빌드를클릭합니다.

  5. 빌더 선택 상자에서 코드 작성기를 클릭한 다음 확인을클릭합니다.

  6. 다음 코드를 입력하거나 붙여넣습니다.

    DoCmd.RunCommand acCmdSaveRecord
  7. 파일 메뉴에서 닫기를 클릭하고 Microsoft 액세스 로 돌아갑니다.

  8. 이벤트 탭에서 OnActivate 속성 상자를 마우스 오른쪽 단추로 클릭한 다음 빌드를 클릭합니다.

  9. 빌더 선택 상자에서 코드 작성기를 클릭한 다음 확인을클릭합니다.

  10. 다음 코드를 입력하거나 붙여넣기: 이 문서의 샘플 코드는 Microsoft ActiveX 데이터 개체를 사용합니다. 이 코드가 올바르게 실행하려면 Microsoft ActiveX 데이터 개체 2.x 라이브러리(2.x가 2.1 이상인 경우)를 참조해야 합니다. 이렇게 하려면 시각적 기본 편집기의 도구 메뉴에서 참조를 클릭하고 Microsoft ActiveX 데이터 개체 2.x 라이브러리 확인란을 선택했는지 확인합니다.

    Dim rs As ADODB.RecordsetSet rs = Me.Recordset.Cloners.Bookmark = Me.BookmarkDoCmd.RunCommand acCmdRefreshMe.Bookmark = rs.Bookmarkrs.CloseSet rs = Nothing
  11. 디자인 뷰에서 두 번째 양식을 연 다음 2~10단계를 반복합니다.

추가 정보

Access 2003에서 동작을 재현하는 단계

  1. 오픈 액세스.

  2. 도움말 메뉴에서 샘플 데이터베이스를 가리키고 노스윈드 샘플 데이터베이스를클릭합니다.

  3. 데이터베이스 창에서 개체아래의 테이블을 클릭한 다음 Employees 테이블을 클릭합니다.

  4. 삽입 메뉴에서 자동 양식을클릭합니다.

  5. frmNewEmployees로양식을 저장합니다.

  6. 직원 양식을 연 다음 이름 필드를 Nancy1로변경합니다.

  7. frmNewEmployees 양식을 연 다음 이름 필드를 Nancy2로변경합니다.

  8. frmNewEmployees 양식을 닫습니다.

  9. 직원 양식을 닫습니다. 이 문서의 "증상" 절에 언급된 "충돌 쓰기" 메시지가 나타납니다.

자세한 내용은 다음 문서 번호를 클릭하여 Microsoft 기술 자료의 문서를 봅니다.

304181 양식을 닫을 때 예기치 않은 쓰기 충돌 오류

280730 ACC2000: 연결된 SQL Server 테이블에서 레코드를 업데이트하려고 할 때 충돌 오류를 작성합니다.

추가 도움이 필요하신가요?

기술 향상
교육 살펴보기
새로운 기능 우선 가져오기
Microsoft Insider 참가

이 정보가 유용한가요?

언어 품질에 얼마나 만족하시나요?
사용 경험에 어떠한 영향을 주었나요?

의견 주셔서 감사합니다!

×