Oracle DB のテーブルからデータを取得し、VBA を使用して Excel シートにダンプするコードを作成しました。
Excel では、最初の行が繰り返し表示されます。たとえば、DB から 45 の異なる行が返された場合、Excel シートでは 45 行すべてが DB の最初の行と同じです。
DB から Excel に行を取得する方法は?
Sub Results()
Dim SQL As String
Dim OraDynaSet As Object
Dim i As Integer
SQL = "Select * from Employee where EmpID=20"
Set OraDynaSet = objDataBase.DBCreateDynaset(SQL, 0&)
If OraDynaSet.RecordCount > 0 Then
'There were records retrieved
OraDynaSet.MoveFirst
For ICOLS = 0 To OraDynaSet.Fields.Count - 1
.Cells(1, ICOLS + 1).Value = OraDynaSet.Fields(ICOLS).Name
Next ICOLS
'Loop the recordset for returned rows
For i = 0 To OraDynaSet.RecordCount - 1
For j = 0 To ICOLS - 1
.Cells(2 + i, j + 1) = OraDynaSet.Fields(j).Value
Next j
Next i
Else
MsgBox "No Matching records found"
End If
End Sub