2011-07-22 9 views
2

レコードセットを扱うのが初めてで、SQL Serverからレコードセットを取得した後、Excelスプレッドシートの値を貼り付けてループする必要があります。VBAをループしてADODB Recordsetを書き込む

レコードセット内のフィールドの順序はすでに正しいので、範囲内の各値を貼り付けるだけでセルからセルに移動できるはずですが、正確に行う方法がわかりません。私はレコードセットが正しいことを知っています。なぜなら、ファイルに出力してすべてを順番に見ていたからです。

これは、これまでの私のコードです:任意およびすべての助けを事前に

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

すごい完璧に働いていたことを、私はそれがより困難だと思いました。 thanks man。 – jz3

+0

この場合、レコードセットを宣言する必要はありません。実際、これは1行で行うことができます:Sheets( "Planners")。Range( "A3")。CopyFromRecordset DataManager.GetData – Nick