Estou com um problema um pouco difícil de resolver e gostaria de saber se alguém tem alguma dica sobre o que pode ser.
Eu possuo uma pasta de trabalho no excel com duas planilhas contendo diversas linhas de matriculas e um banco de dados que guarda o nome, equipe e etc dessas matriculas.
O código tem por finalidade obter o número da matricula, acessar o banco e retornar com o nome da equipe referente aquela matricula.
Porém em uma planilha eu tenho 2000 matriculas em média e a consulta dura um pouco mais de 10 segundos para preencher todas as linhas.
Já na segunda planilha (que é praticamente idêntica a primeira, onde a unica diferença é o nome dela), eu tenho aproximadamente 1200 matriculas (menos do que a primeira), porém a consulta leva em torno de 5 minutos para preencher os dados.
Já fiz diversos testes trocando as matriculas de posição (entre a planilha 1 e 2), já revi o código, e o resultado é sempre o mesmo. A planilha 1 roda a consulta completa em 10 segundos e a planilha 2 demora uns 5 minutos.
Será que alguém sabe o que pode causar essa lentidão na consulta?
Segue o código abaixo:
Código: Selecionar todos
'Esse é o procedimento
Public Sub ConectarBanco(ByVal strPLAN As String, ByVal strCELLMAT As String, strSBEQUIP As String, strEQUIP As String)
Dim lgEndCell As Long, i As Long
Windows(MACRO).Activate
Sheets(strPLAN).Select
'Função que retorna o número de linhas que são preenchidas com dados
lgEndCell = lastValue("*")
For i = 2 To lgEndCell
'Range(strCELLMAT & CStr(i) possui o número da matricula
rst.Open "SELECT ativ, equipe FROM MATRICULAS Where login = '" & Range(strCELLMAT & CStr(i)) & "'", cnn, adOpenStatic
If rst![ativ] = "" Then
Range(strSBEQUIP & CStr(i)) = "N/E"
Range(strEQUIP & CStr(i)) = "N/E"
Else
Range(strSBEQUIP & CStr(i)) = rst![ativ]
Range(strEQUIP & CStr(i)) = rst![equipe]
End If
rst.Close
Next
Set rst = Nothing
End Sub
Código: Selecionar todos
'Essas são as chamadas
'Planilha 1
Call ConectarBanco("ENCERRADOS_BaseCompleta", "V", "AZ", "BA")
'Planilha 2
Call ConectarBanco("ENCERRADOS_UltimoAcionamento", "V", "AZ", "BA")
Abraços