Another example of an Oracle call using Excell's macros.

Attribute VB_Name = "Get Data"
Sub Get_Data()
Attribute Get_Data.VB_ProcData.VB_Invoke_Func = " \n14"
  
  ' Create and initialize the necessary objects
  Dim OraSession As Object
  Dim OraDatabase As Object
  Dim EmpDynaset As Object
  Dim ColNames As Object
  
  Set OraSession = CreateObject("OracleInProcServer.XOraSession")
  Set OraDatabase = OraSession.OpenDatabase("2:", "scott/tiger", 0&)
  Set EmpDynaset = OraDatabase.DbCreateDynaset("select * from emp", 0&)
 
  ' Using field array, ie. ColNames("ename").value, is significantly faster than using
  '   field lookup, ie. EmpDynaset.fields("ename").value
  Set ColNames = EmpDynaset.Fields

  ' Place column headings on sheet
  For icols = 1 To ColNames.Count
    Worksheets("DataSheet").Cells(1, icols).Value = ColNames(icols - 1).Name
  Next
     
  ' Place data on sheet using CopyToClipboard
  EmpDynaset.CopyToClipboard -1
  Sheets("DataSheet").Select
  Range("A2").Select
  ActiveSheet.Paste
  
End Sub