2013-12-08 3 views
1

구조체가 기존 레코드 세트 rs1 (200 개 이상의 필드가 있음)과 비슷한 빈 DAO 레코드 세트 rs2를 생성하려고합니다. 그러나 ADO 레코드 세트를 사용할 때 발생하지 않는 오류가 발생합니다.MS Access Error with DAO Recordset

dim rs2 as recordset 

With rs2.Fields 
    For Each fld In rs.Fields 
     .Append fld, adVariant 
    Next 
End With 

오류 개수가 잘못되었습니다.

+1

당신이 몇 가지 코드를 누락 : 당신은 단지 빈 구조를 필요로한다면, 다음

Set rs2 = rs.clone 

그리고 : 첫째, 레코드를 복제? 'rs2'가 인스턴스화 된 것처럼 보이지 않습니다. – Mike

답변

1

ADO를 사용하면 특정 상황에서 Recordset.Fields 컬렉션에 필드를 추가 할 수 있습니다. 따라서 ADO 버전의 코드가 오류없이 실행됩니다.

그러나 DAO Fields.Append 메서드는 Recordset과 함께 사용할 수 없습니다. 대신 테이블에 필드를 추가하거나 레코드의 데이터 소스로 사용되는 쿼리의 필드 식을 추가해야합니다.

+0

답장을 보내 주셔서 감사합니다. 이 경우 레코드 세트간에 변환을 수행 할 수있는 방법이 있습니까? ... DAO에서 ADO로 변환하는 것을 의미합니까? –

+0

나는 그 질문을 이해할 수 있을지 불확실하다. DAO 레코드 집합 개체를 만든 다음 ADO 레코드 집합으로 변환 할 수는 없습니다. – HansUp

0

이 솔루션은 성능에는 좋지 않지만 어쨌든 시도해 볼 수 있습니다.

Do until rs2.EOF 
    rs2.Delete 
Loop 
+0

rs2.delete 할 때 레코드의 실제 위치에 대한 포인터 만 들어 있기 때문에 rs의 레코드도 실제로 삭제된다고 생각합니다. –

+0

모르겠지만 말한 것처럼 될 수 있습니다. 이 시점에서 DoCmd.RunSQL 명령 ("SELECT * INTO RS2TABLE FROM RSTABLE WHERE FALSE")을 사용하여 SQL에서 새 테이블을 만들고 새 테이블에서 DAO 레코드 집합을 열지 않는 이유는 무엇입니까? – kiks73

+0

안녕하세요. 괜찮습니다. 하지만 그게 더 간단합니다 :........... –