제목에서와 같이 나는 이상한 현상을 보았습니다. 두 개의 하위 양식이 포함 된 양식이 있습니다. 두 하위 폼에는 관련 하위 폼의 쿼리를 트리거하는 단추가 있습니다. 양식을로드 한 후 즉시이 단추 (양식 다시 쿼리)를 클릭하십시오. OnCurrent 이벤트의 현재 레코드의 기본 키 값을 변수에 저장하려고하면 "3021 : 현재 레코드 없음"오류가 발생합니다.Form.CurrentRecord = 1 and Form.RecordSet.Asoluteposition = -1
Form.CurrentRecord=1
Form.RecordSet.Absoluteposition=-1
Form.RecordSet.RecordCount=14
Form.RecordSet.EOF=False
Form.RecordSet.BOF=False
는 또한 양식이로드 될 때로드 이벤트에서 여전히 올바르게 작동하는지주의하고, 거기에 내가있는 기본 키 값을 저장할 수 있습니다 디버거에서 이상하게도 관련 값이 같다 첫 번째 레코드에 포함 된 기본 키.
어쨌든 Form_Load와 그 requery 버튼 사이를 클릭하면 폼의 상태가 동기화되지 않게됩니다. 방금 최근 Access 2003에서 2007로 전환했으며이 오류가 발생하지 않았 음을 기억합니다. (이 버튼을 제대로 누르지 않았을 수도 있음).
현재로서는 해결 방법이 있지만 어떻게 이런 일이 발생할 수 있는지 알고 싶습니다.
이 다른 컬럼의 복잡한 합계를 계산하는 데 사용하는 기능에 모든 이들의 사용 "하지만 난 .MoveLast 전에 ADO도 RecordCount가 반환 -1 믿는다"- 잘못된. DAO 레코드 집합과 달리 ADO의 RecordCount 속성은 모든 행을 가져 오기 때문에 EOF를 탐색하여 변경되지 않습니다. 비동기 적으로 행을 가져 오는 중에도 _Progess 이벤트에서 RecordCount는 지금까지 가져온 행 수가 아닌 최종 값을 표시합니다. 그러므로 AbsolutePosition이 같은 방식으로 작동하지 못하는 것을 나는 볼 수 없다. – onedaywhen
양식의 .Recordset 또는 .RecordsetClone과 함께보고 된 문제를 복제 할 수 없습니다. 테스트 할 때마다 첫 번째 레코드가 0을 반환하므로 문제가 무엇인지 알 수 없습니다. * ADO 레코드 세트의 위치를 기억하는 몇 가지 상황이 있습니다 .RecordCount는 -1을 반환하지만 ADO를 자주 사용하여 두뇌에 저장하지 않기 때문에 정확한 상황을 기억하지 못합니다. –
속성이 지원되지 않는 경우 RecordCount는 -1을 반환합니다. 공급자가 지원하지 않거나 (예 : ACE/Jet의 경우는 해당되지 않음) 공급자 설정이 지원하지 않습니다. 전달 전용 커서를 사용하고 있습니다. 내가 말하고있는 것은 EOF를 탐색하는 것이 -1이든 아니든 상관없이 RecordCount를 변경시키지 않는다는 것입니다. IIRC DAO는 항상 모든 행을 가져 오지 않습니다. 올바른 RecordCount, 즉 RecordCount 값을 변경하려면 EOF를 탐색해야하는 경우가 있습니다. ADO에서 RecordCount는 -1이더라도 결코 변경되지 않습니다 ('지원되지 않음'을 의미). – onedaywhen