2012-06-24 2 views
0

레코드 집합을 배열로로드하려고합니다. 다음 코드를 사용하고 있습니다 :Recordset 개체에서 GetRows를 사용하면 행이 반환되지 않습니다.

Set rst = CurrentDb.OpenRecordset("SELECT id FROM TABLE1") 
bankacid = rst.GetRows() 
rst.Close 
i = UBound(bankacid, 2) 
MsgBox i + 1 

이것은 행을 반환하지 않습니다. "bankacid = rst.getrows (5)"를 사용하면 작동합니다.

저는 VBA에 매우 익숙하며 매우 누락 된 부분을 지적하는 누군가를 높이 평가합니다. 매우 .

답변

0

한 걸음 뒤로 물러서서 배열을 원하는 이유를 말하면, DAO recorset은 배열보다 훨씬 기능적입니다. 배열이 실제로 필요한 경우 ADODB를 사용하십시오. 필드와 행을 참조하려는 경우에는 Move, MoveFirst, MoveLast, MoveNext, MovePrevious와 필드 이름 (열) 또는 서수 위치 (. 필드 (3))를 사용하십시오 ..

+0

감사합니다. 글쎄, 내가 뭘하려고했는지 훨씬 나아 졌어. "getrows (5)"를 채울 레코드의 양을 선택한 경우 원래 코드가 작동하는 이유는 무엇인지 혼란 스럽습니다. "getrows()"에서 읽은 getrows()는 모든 레코드를 선택해야합니까? – Nathan

+0

모든 행을 검색하는 ADO GetRows를 생각하고 있다고 생각합니다 .DAO Getrows는 다른 점입니다. http://support.microsoft.com/kb/129856 – Fionnuala