sql >> Database >  >> RDS >> Oracle

Excel ODBC Data Connection Query-tijd nodig om elke query te vernieuwen

Iets als dit misschien (ervan uitgaande dat alle connecties hun resultaten in een werkbladtabel plaatsen, niet in een draaitabel):

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

Om dit uit te voeren:

  1. Alt +F11 om naar de VBA-editor te gaan.
  2. Vanuit menu:Module invoegen.
  3. Plak de code in het venster.
  4. Sluit de VBA-editor.
  5. Alt +F8 geeft een lijst met macro's. Kies de nieuwe en klik op uitvoeren.
  6. Alt +F11 opnieuw naar de VBA-editor.
  7. Ctr l+G opent het directe paneel met de resultaten.

Als je wilt dat de code naar een cel schrijft, gebruik dan deze versie:

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



  1. Voorbeelden van veel-op-veel relaties

  2. het verwerken van een groot aantal database-items met paging vertraagt ​​met de tijd

  3. Een statisch voorvoegsel toevoegen aan een oplopend nummer

  4. Een varchar-kolom upgraden naar enum-type in postgresql