1
엑셀 시트에 레코드 세트 내용을 쓰려고합니다. 레코드 세트 내용을 Movefirst로 옮길 때 코드가 작동하지 않습니다. 내 VBA 코드엑셀로 엑세스하기위한 레코드 세트 내용
Set cnn = CurrentProject.Connection
Set rst = New ADODB.Recordset
strSQL = "SELECT * FROM " & qrytable & ""
rst.Open strSQL, cnn, adOpenKeyset, adLockOptimistic, adCmdTableDirect
Set wsSheet1 = wb.Sheets(conSHT_NAME)
wsSheet1.Cells.ClearContents
wsSheet1.Select
For i = 1 To rst.Fields.Count
wsSheet1.Cells(1, i) = rst.Fields(i - 1).Name
Next i
If rst.EOF Then
MsgBox "inside rst"
rst.MoveFirst
wsSheet1.Range("a2").CopyFromRecordset rst
End If
wsSheet1.Columns("A:Q").EntireColumn.AutoFit
rst.Close
조건 rst.EOF는 사실되고 있다면이 방법에서 이동에서 방법 이동하는 디버깅 제어를 rst.Movefirst 설정 기록을 이동려고 할 때 여기서 나는이 메소드를 호출하고 내용을 작성하지 않고 Excel을 호출합니다. 다음에 널 레코드에 대한
있습니까? 그러면 코드를 실행할 때 EOF가 참인 이유가 설명됩니다. –
'.CopyFromRecordset' 메소드를 사용할 때는 일반적으로 처음에는 움직이지 않습니다. 머리말을 한 다음 범위 ("A2")에서'.CopyFromRecordset first '를 호출하십시오. 레코드 세트를 반복 할 때 첫 번째, 다음, 마지막으로 이동하지만 위 코드에서는 그렇게하지 않습니다. 그냥'if'와'move' 문 전체를 주석 처리하고'.CopyFromRecordset'을 남겨주세요. –
@Matt Thrower 내 레코드 세트가 null을 표시하고 있습니다. 쿼리 마법사에서 * qrytable * 쿼리를 실행할 때 데이터가 다시 검색됩니다. 왜 내 레코드 세트가 null입니까? – sam