sql >> Base de Datos >  >> RDS >> Oracle

Tiempo de consulta de conexión de datos ODBC de Excel necesario para actualizar cada consulta

Tal vez algo como esto (supone que todas las conexiones colocan sus resultados en una tabla de hoja de trabajo, no en una tabla dinámica):

Sub TimeQueries()
    Dim oSh As Worksheet
    Dim oCn As WorkbookConnection
    Dim dTime As Double
    For Each oCn In ThisWorkbook.Connections
        dTime = Timer
        oCn.Ranges(1).ListObject.QueryTable.Refresh False
        Debug.Print Timer - dTime, oCn.Name, oCn.Ranges(1).Address(external:=True)
    Next
End Sub

Para ejecutar esto:

  1. Alt +F11 para ir al editor de VBA.
  2. Desde el menú:Insertar módulo.
  3. Pegue el código en la ventana.
  4. Cierre el editor de VBA.
  5. Alt +F8 muestra una lista de macros. Elija el nuevo y haga clic en ejecutar.
  6. Alt +F11 de nuevo al editor de VBA.
  7. Ctr l+G abre el panel inmediato con los resultados.

Si desea que el código se escriba en una celda, use esta versión:

Sub TimeQueries()
    Dim oSh As Worksheet
    Dim oCn As WorkbookConnection
    Dim dTime As Double
    Dim lRow As Long
    Set oSh = Worksheets("Sheet4") 'Change to your sheet name!
    oSh.Cells(1,1).Value = "Name of Connection"
    oSh.Cells(1,2).Value = "Location"
    oSh.Cells(1,1).Value = "Refresh time (s)"
    For Each oCn In ThisWorkbook.Connections
        lRow = lRow + 1
        dTime = Timer
        oCn.Ranges(1).ListObject.QueryTable.Refresh False
        oSh.Cells(lRow,3).Value = Timer - dTime
        oSh.Cells(lRow,1).Value = oCn.Name
        oSh.Cells(lRow,2).Value = oCn.Ranges(1).Address(external:=True)
    Next
End Sub