Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Tempo de consulta de conexão de dados ODBC do Excel para atualizar cada consulta


Algo assim talvez (supõe que todas as conexões coloquem seus resultados em uma tabela de planilha, não em uma tabela 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 executar isso:
  1. Alt +F11 para ir para o editor VBA.
  2. No menu:Inserir módulo.
  3. Cole o código na janela.
  4. Feche o editor VBA.
  5. Alt +F8 traz uma lista de macros. Escolha o novo e clique em executar.
  6. Alt +F11 novamente para o editor VBA.
  7. Ctr l+G abre o painel imediato com os resultados.

Se você quiser que o código grave em uma célula, use esta versão:
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