und hier nochmal eine Loesung fuer VBA. Man kann diese Sub in ein Modul einbinden und einfach aufrufen wann es benoetigt wird. Ein Verweis auf Microsoft ActiveX Data Objects 2.6 oder > wird benoetigt.
Public Sub ExportOracle(xlsSheet As Worksheet, sqlQuery As String, oraConnection As String)
Dim Conn As ADODB.Connection
Set Conn = New ADODB.Connection
Conn.Open oraConnection
Dim Rs, i, counter
Set Rs = Conn.Execute(sqlQuery)
For i = 0 To Rs.Fields.Count - 1
xlsSheet.Cells(1, i + 1).Value = Rs.Fields.Item(i).Name
Next
counter = 2
Do Until Rs.EOF
For i = 0 To Rs.Fields.Count - 1
xlsSheet.Cells(counter, i + 1).Value = Rs(i)
Next
counter = counter + 1
Rs.MoveNext
Loop
Rs.Close
Conn.Close
Set Rs = Nothing
Set Conn = Nothing
End Sub
das ganze kann dann so ausgefuehrt werden:
Private Sub getExport()
Dim strSQL, strConn As String
strSQL = "Select \* from tbl;"
strConn = "Provider=MSDAORA:stuck\_out\_tongue\_winking\_eye:assword=deinpass;User ID=deinuser;Data Source=deindb:stuck\_out\_tongue\_winking\_eye:ersist Security Info=True"
Call ExportOracle(Me.ActiveSheet, strSQL, strConn)
End Sub
cheers
Woolli