2011-07-22 159 views
2

我是新来处理记录集,我正在从事一个从sql服务器检索记录集,然后我需要通过它循环粘贴在Excel电子表格中的值。VBA循环和写ADODB记录集

记录集中字段的顺序已经是正确的了,所以我应该能够在一个范围内从一个单元格移动到另一个单元格,但我不确定如何去做。我知道记录集是正确的,因为我将它输出到一个文件中,并且所有内容都按顺序排列。

这是我到目前为止的代码:

Public Sub retrieve() 

Dim rsTest As ADODB.Recordset 
Set rsTest = New ADODB.Recordset 
Set rsTest = DataManager.GetData() 

Sheets("Planners").Activate 
Dim cel As Range 
Dim i As Integer 
Dim rsFields As Variant 

Do While Not rsTest.EOF 

    For Each cel In ActiveSheet.Range("A3:H1000").Cells 
    For Each rsFields In rsTest.Fields 

    cel = rsTest(rsFields.Name) 

    Next 
    Next 

Loop 

End Sub 

预先感谢任何及所有的帮助。

回答

6

如果你想把所有的记录字段,那么你可以只是这样做:

Public Sub retrieve() 
Dim rsTest As ADODB.Recordset 

    Set rsTest = DataManager.GetData() 

    If Not rsTest.EOF Then 
     Sheets("Planners").Range("A3").CopyFromRecordset rsTest 
    End If 

End Sub 
+0

哇,这工作得十分完美,我认为这是比这更困难。 谢谢你。 – jz3

+0

你不需要在这种情况下声明一个记录集 - 实际上这可以在一行中完成:Sheets(“Planners”)。Range(“A3”)。CopyFromRecordset DataManager.GetData – Nick