Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

pmeloabt

QueryTables, Refresh.

Recommended Posts

Caros,

 

eu tenho uma macro que busca dados via conexão ADODB por um record set. Para "colar" os dados, tenho usado QueryTables. Sou iniciante nesse objeto do excel e lendo as propriedades dele tenho algumas dúvidas.

 

O que minha macro faz é carregar esses dados, colar os dados e eu fico analisando os dados. Para isso, eu fico chamando a Sub de 5 em 5 minutos. Agora que estou usando refresh, vi que não é necessário ficar chamando toda a Sub novamente.

 

Como faço para deixar minha macro dar refresh de 5 em 5 minutos? Posso usar a propriedade .RefreshPeriod? Mas ao terminar de rodar a Sub, o Excel entende que ele tem que rodar de 5 em 5 minutos? Ele vai fazer a consulta no SQL de 5 em 5 minutos ou eu tenho que abrir meu recordset, setar minha querytable novamente e dar refresh de novo?

 

Segue algumas linhas do meu código para entenderem melhor o que eu faço.

 

Agradeço desde já.

Dim conn_sinacor As ADODB.Connection

Set conn_sinacor = New ADODB.Connection

conn_sinacor.Open 





Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient


Dim qtbData As Excel.QueryTable




Sql = "SELECT....."
         
                

rs.Open Sql, conn_sinacor


Set qtbData = ThisWorkbook.Sheets("ATUALIZA").QueryTables.Add(rs, ThisWorkbook.Sheets("ATUALIZA").Range("A1:D100000"))


ThisWorkbook.Sheets("ATUALIZA").Select
Range("A1:D100000").Select
Selection.ClearContents


qtbData.FieldNames = False


qtbData.AdjustColumnWidth = False


qtbData.Refresh

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.