Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Zeit der Excel-ODBC-Datenverbindungsabfrage zum Aktualisieren jeder Abfrage

So etwas vielleicht (vorausgesetzt, alle Verbindungen platzieren ihre Ergebnisse in einer Arbeitsblatttabelle, nicht in einer Pivottable):

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

So führen Sie dies aus:

  1. Alt +F11 um zum VBA-Editor zu gelangen.
  2. Aus dem Menü:Modul einfügen.
  3. Code in das Fenster einfügen.
  4. Schließen Sie den VBA-Editor.
  5. Alt +F8 ruft eine Liste von Makros auf. Wählen Sie die neue aus und klicken Sie auf Ausführen.
  6. Alt +F11 wieder zum VBA-Editor.
  7. Ctr l+G öffnet das unmittelbare Fenster mit den Ergebnissen.

Wenn Sie möchten, dass der Code in eine Zelle schreibt, verwenden Sie diese Version:

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