|
オラクルボーイさん、こうちゃん こんにちは、
以下のようなコードで、できると思います。
ちなみにオラクルoo4oのサンプルコードに、よく似たものが載ってます。
一度のぞいてみてください。結構勉強になります。
Function M_Test()
Dim GOraSession, GOraDatabase, GOraDyna, GOraFields As Object
Dim StrSQL As String
Dim i, icols As Long
'データベースとの接続
On Error GoTo oo4o_Error
Set GOraSession = CreateObject("OracleInProcserver.XOrasession")
On Error GoTo 0
On Error GoTo Con_Error
Set GOraDatabase = GOraSession.DbOpenDatabase("aaa.world", "aaa/bbb", 0&)
On Error GoTo 0
'SQL実行
StrSQL = "select * from test_tbl"
Set GOraDyna = GOraDatabase.DbCreateDynaset(StrSQL, 0&)
'以下2通りの方法でデータを貼り付けます。
'1. CopyToClipboardを使って、シートにデータを配置する方法
GOraDyna.CopyToClipboard -1
Range("A2").Select
ActiveSheet.Paste
'一旦データを消して
Cells.ClearContents
'2.ループで連続データ貼り付ける方法
Set GOraFields = GOraDyna.Fields
' シートに見出しを配置します
For icols = 1 To GOraFields.Count
Cells(1, icols).Value = GOraFields(icols - 1).Name
Next icols
' シートにデーターを配置します
i = 2
Do While Not GOraDyna.EOF
For icols = 1 To GOraFields.Count
Cells(i, icols).Value = GOraFields(icols - 1).Value
Next icols
i = i + 1
GOraDyna.DbmoveNEXT
Loop
Set GOraSession = Nothing
Set GOraDatabase = Nothing
Exit Function
oo4o_Error:
MsgBox "oo4o_Error"
Exit Function
Con_Error:
MsgBox "Con_Error"
Exit Function
End Function
|
|