ACC: 잘못된 레코드 데이터 변경 내용은 저장한 경우

기술 자료 번역 기술 자료 번역
기술 자료: 191883 - 이 문서가 적용되는 제품 보기.
이 문서가 보관되었습니다. "그대로" 제공되었으며, 업데이트가 되지 않을 것입니다.
보통: 기본적인 매크로, 코드 작성 및 상호 운용성 기술이 필요합니다.

모두 확대 | 모두 축소

이 페이지에서

현상

폼 레코드의 데이터를 변경할 경우 변경된 데이터가 잘못된 레코드로 저장됩니다 찾습니다.

원인

이 문제는 다음 두 가지 상황에서 발생할 수 있습니다.
  1. 레코드 집합에서 레코드를 삭제하는 수행하려면 서로게이트 레코드 번호 속성으로 이동할 AbsolutePosition을 사용하고 있습니다. 다음은 DAO 255개 이상의 행이 있는 테이블에서 문제를 재현하는 데 사용할 수 있습니다:
        Sub main()
            On Error GoTo ErrorHandler
            Dim db As DAO.Database, SQL As String
            Dim td As DAO.TableDef, fld As DAO.Field, qd As DAO.QueryDef
            Dim rs As DAO.Recordset
            Dim bkmk As Variant
            Dim nAbsolutePosition As Variant
    
    
            ' Open database with large table.
            Set db = DBEngine.OpenDatabase("C:\Northwind.mdb")
            Set db = CurrentDb()
    
            ' Open a dynaset or snapshot with hundreds of records.
            Set rs = _
            db.OpenRecordset("SELECT * FROM [Order Details]", _
            dbOpenDynaset)
    
            ' Populate the table.
            rs.Move (1000)
            bkmk = rs.Bookmark
    
            ' Delete a record.
            rs.MoveFirst
            rs.Delete
    
            ' Go to a bookmark way down the table.
            rs.Bookmark = bkmk
    
            ' Get the position so you can move back here.
            nAbsolutePosition = rs.AbsolutePosition
            Debug.Print "Absolute position = " & nAbsolutePosition _
            & ": UnitPrice = " & rs![UnitPrice]
    
            ' Move to position by moves.
            rs.MoveFirst
            rs.Move (nAbsolutePosition)
            Debug.Print nAbsolutePosition & " moves: UnitPrice = " _
            & rs![UnitPrice]
    
        Exit Sub
    
        ErrorHandler:
           MsgBox "An error has occurred "
           Resume Next
        End Sub
  2. Visual Basic 코드를 작성한 또는 폼에 있는 레코드를 찾는 응용 프로그램 코드에 대한 VBA 빌드하는 데 사용되는 콤보 상자나 목록 상자 마법사 및 다음 조건이 발생할:
    1. 원하는 데이터를 가져오는지 원본이라고 255개 이상의 행이 있습니다.
    2. 한 폼에서 레코드를 삭제합니다.
    3. 폼을 닫지 않고 다른 레코드를 사용하면 폼 및 RecordsetClone 개체의 Bookmark 속성 중 사용할 방법으로 검색할. (이렇게 하는 한 가지 방법은 콤보 상자 마법사 옵션을 "내 콤보 상자에서 선택한 값에 기초한 폼에서 레코드를 찾을.." 수 있습니다)
    4. 사용자가 데이터 레코드 변경합니다.

해결 방법

이 문제를 해결하려면 다음 중 하나를 실행하십시오.
  • 다운로드하여 Microsoft Office 97 서비스 릴리스 2 설치하십시오. 이 서비스 릴리스를 가져오는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
    151261OFF97: MS Office 97 SR-2 설치하는 방법
  • 양식을 사용하여 책갈피 사용하여 레코드를 검색 전에 다시 쿼리 속성. 콤보 상자 마법사가 만든 코드를 의 경우 줄 추가합니다
           Me.Requery
          Sub ComboBoxName_AfterUpdate()
    
             ' Add this line to requery the form.
             Me.Requery
    
             ' The remaining code was generated by the wizard.
             ' Find the record that matches the control.
             Me.RecordsetClone.FindFirst "[Key] = " & Me!ComboBoxName
             Me.Bookmark = Me.RecordsetClone.Bookmark
    
         End Sub
    데이터를 올바르게 저장할 레코드 편집 지금 때.

    주의 대상 코드를 찾을 수 있도록 Microsoft는 책갈피 찾기 마법사를 이라는 추가 기능을 개발했습니다. 이 마법사에 대한 자세한 내용은 Microsoft 기술 자료를 다음 문서를 참조하십시오.
    193052ACC: 책갈피 마법사 사용 가능한 다운로드 센터에서 찾기
  • Microsoft 웹 사이트에서 Jet35sp3.exe 구하는, Microsoft Jet 데이터베이스 엔진이 업데이트된 버전 3.51이 이 파일에 포함됩니다. Microsoft Jet 3.51 구하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
    172733Microsoft Jet 3.5 버전을 ACC97: 업데이트 다운로드 사용

현재 상태

Microsoft는 이 이 문서의 시작 부분에 나열된 제품에서 문제를 확인했습니다. 이 문제는 더 이상 SR-2 Microsoft Access 97에서 발생합니다.

추가 정보

이 동작은 각 레코드의 데이터 양 및 삭제된 레코드와 편집할 레코드 사이에서 레코드 수를 의존하는 것입니다. 표에서 아주 적은 수의 레코드가 있을 경우 또는 삭제된 레코드 충분히 멀리 떨어진 에서 레코드 검색할 경우 이 동작을 볼 수 없습니다.

문제를 재현하는 방법

검색 양식 만들기:
  1. Northwind.mdb 예제 데이터베이스를 엽니다.
  2. Order Details 테이블을 기초로 새 양식을 만듭니다.
  3. 새 양식을 frmOrderDetails 파일로 저장하십시오.
  4. frmOrderDetails 폼을 디자인 보기에서 엽니다.
  5. 컨트롤 마법사를 켜고 폼에 콤보 상자를 추가하십시오.
  6. 콤보 상자 마법사의 첫 페이지에서 "내 콤보 상자에서 선택한 값에 기초한 폼에서 레코드를 찾을." 옵션을 선택하여 클릭한 다음 을 클릭하십시오.
  7. Order Details 테이블에서 테이블 목록에서 선택하십시오.
  8. OrderID 필드를 위해 선택한 사용 가능한 필드 목록에서 이동할 필드 목록 및 다음을 클릭합니다.
  9. 마침을 클릭한 다음 양식을 저장하십시오.
문제 재현:
  1. frmOrderDetails 폼을 폼 보기에서 엽니다.
  2. 첫 번째 레코드를 삭제하십시오.
  3. "검색 양식 만들기 섹션에서 추가한 콤보 상자를 사용하여 목록 끝에 근처에 레코드 중 하나를 선택하십시오.
  4. 폼의 수량 필드로 변경하십시오.
  5. 폼 아래쪽에 있는 탐색 단추를 사용하여 다음 레코드로 이동하십시오.
다음 레코드로 방금 양식에 입력한 데이터가 저장되었는지 표시되어야 합니다.

참고: Access 2.0 및 95, 두 개의 레코드를 미리 탐색 단추를 클릭한 후 이동할 수 있습니다. 잘못된 레코드 데이터가 저장된 보려면 한 레코드로 다시 이동할 필요가 있습니다.

레코드로 이동하려면 콤보 상자를 사용하는 방법에 대한 자세한 내용은 다음을 참조하십시오.
100132ACC: 4 가지 콤보 상자 선택에서 레코드 이동 방법

속성

기술 자료: 191883 - 마지막 검토: 2014년 2월 13일 목요일 - 수정: 2.1
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Access 2.0 Standard Edition
  • Microsoft Access 95 Standard Edition
  • Microsoft Access 97 Standard Edition
키워드:?
kbnosurvey kbarchive kbmt kbbug kbpending KB191883 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com