2011-12-06 2 views
0

Excel 프로젝트에 Marks이라는 속성이있는 클래스 모듈이 있습니다.이 컬렉션은 VB 컬렉션이며 공용 get 재산 (그러나 세트 또는 let 없음).VBA 개체의 컬렉션 속성에 데이터가 들어 있지만 액세스 할 수 없습니다. (EOF/BOF 오류 발생)

나는 아무 문제없이이 값을 지정할 수 있습니다

3021: Either BOF or EOF is true or the current record has been deleted 
:이 객체 뭔가 (예를 들어, 그것을 통해 반복)을 수행하려고 할 때, 그러나

myObject.Marks.Add 3.14159 

, 오류가 발생합니다

그러나 myObject.Marks.Count을 시도하면 컬렉션에 예상 한 데이터 양이 포함되어 있음을 알 수 있습니다. 단지 액세스 할 수 없습니다!

나는 이유를 정말로 이해하지 못한다. 나는 다른 컬렉션 프로퍼티, 심지어 콜렉션 콜렉션과 같은 프로세스를 사용하고 있으며 잘 동작한다.

아이디어가 있으십니까?

+2

VB Collection에서 발생한 오류와 비슷한 오류는 아닙니다. 그것은 Recordset 오류처럼 보입니다. 코드를 알려주시겠습니까? – Foole

+0

직접 창에서 다음과 같은 오류가 발생합니다 :'debug.Print myObject.mySubObject (1) .Marks (1)', mySubObject는 또 다른 Collection입니다. 그러나'debug.Print myObject.mySubObject (1) .Marks.Count'는 유효한 결과를 제공합니다. – Xophmeister

+0

... 그러나 이러한 개체는 레코드 집합에서 채워집니다.'myObject.mySubObject (i) .Marks.Add rs! numeric_value' – Xophmeister

답변

0

myObject.myCollection.Add recordset!field은 값이 아닌 myCollection 개체에 레코드 집합 필드 개체를 추가합니다. 따라서 필드를 적절한 유형으로 변환하면 문제가 해결됩니다.

관련 문제