Caros, no código abaixo faço uma busca no banco access.
O problema é que ele esta demorando cerca de 2 minutos para retornar o resultado.
Alguém saberia me dizer o que posso fazer para que o retorno dos dados seja mais rapído.
o banco esta com 200000 registros.
esse código esta em no módulo vba do excel.
o resultado da busca eu gravo em uma planilha do excel.
segue código
Private Sub ListView1_DblClick()
Plan5.Select
Range("A2:J100000").ClearContents
[A1].Select
Nome = ListView1.ListItems(1)
Ref_Celula = ListView1.SelectedItem.ListSubItems.Item(2)
Nota = ListView1.SelectedItem.ListSubItems.Item(3)
Ref_Mes = ListView1.SelectedItem.ListSubItems.Item(5)
Application.ScreenUpdating = False
Dim CX As New MinhaConexao
Dim BANCO As ADODB.Recordset
Dim sql As String
Dim i As Long
Dim ws As Worksheet
Dim ProcurarPor, Achar, Supervisor, Operador
Dim lCol As Long
Dim concat
Set ws = ThisWorkbook.Sheets("Base_Consultas")
Super = ListView1.ListItems(1) 'Operador
Operador = ListView1.SelectedItem.ListSubItems.Item(2) 'celula
Mon = ListView1.SelectedItem.ListSubItems.Item(3) 'Nota
ProcurarPor = "Mes"
ProcurarPor1 = "Operador"
ProcurarPor2 = "Celula"
ProcurarPor3 = "Nota_1"
Achar = ListView1.SelectedItem.ListSubItems.Item(5)
sql = "SELECT Operador,Celula,Processo,Motivo,Projeto,Cod_Assinante,Nota_1,Nota_2,Tempo_de_Espera,Mes FROM An_Pesq_Satisf"
sql = sql & " WHERE " & ProcurarPor & " LIKE '%" & Achar & "%' And " & ProcurarPor1 & " LIKE '%" & Super & "%' And " & ProcurarPor2 & " LIKE '%" & Operador & "%' And " & ProcurarPor3 & " LIKE '%" & Mon & "%' "
P:
Set BANCO = New ADODB.Recordset
CX.Conecta
BANCO.Open sql, CX.conn, adOpenKeyset, adLockOptimistic
Total = BANCO.RecordCount
Range("B1048576").Select
Range("A1048576").End(xlUp).Offset(1, 0).Select
lin_tbl = ActiveCell.CopyFromRecordset(BANCO)
Set BANCO = Nothing
CX.Desconecta
Consulta.Show
End Sub
O problema é que ele esta demorando cerca de 2 minutos para retornar o resultado.
Alguém saberia me dizer o que posso fazer para que o retorno dos dados seja mais rapído.
o banco esta com 200000 registros.
esse código esta em no módulo vba do excel.
o resultado da busca eu gravo em uma planilha do excel.
segue código
Private Sub ListView1_DblClick()
Plan5.Select
Range("A2:J100000").ClearContents
[A1].Select
Nome = ListView1.ListItems(1)
Ref_Celula = ListView1.SelectedItem.ListSubItems.Item(2)
Nota = ListView1.SelectedItem.ListSubItems.Item(3)
Ref_Mes = ListView1.SelectedItem.ListSubItems.Item(5)
Application.ScreenUpdating = False
Dim CX As New MinhaConexao
Dim BANCO As ADODB.Recordset
Dim sql As String
Dim i As Long
Dim ws As Worksheet
Dim ProcurarPor, Achar, Supervisor, Operador
Dim lCol As Long
Dim concat
Set ws = ThisWorkbook.Sheets("Base_Consultas")
Super = ListView1.ListItems(1) 'Operador
Operador = ListView1.SelectedItem.ListSubItems.Item(2) 'celula
Mon = ListView1.SelectedItem.ListSubItems.Item(3) 'Nota
ProcurarPor = "Mes"
ProcurarPor1 = "Operador"
ProcurarPor2 = "Celula"
ProcurarPor3 = "Nota_1"
Achar = ListView1.SelectedItem.ListSubItems.Item(5)
sql = "SELECT Operador,Celula,Processo,Motivo,Projeto,Cod_Assinante,Nota_1,Nota_2,Tempo_de_Espera,Mes FROM An_Pesq_Satisf"
sql = sql & " WHERE " & ProcurarPor & " LIKE '%" & Achar & "%' And " & ProcurarPor1 & " LIKE '%" & Super & "%' And " & ProcurarPor2 & " LIKE '%" & Operador & "%' And " & ProcurarPor3 & " LIKE '%" & Mon & "%' "
P:
Set BANCO = New ADODB.Recordset
CX.Conecta
BANCO.Open sql, CX.conn, adOpenKeyset, adLockOptimistic
Total = BANCO.RecordCount
Range("B1048576").Select
Range("A1048576").End(xlUp).Offset(1, 0).Select
lin_tbl = ActiveCell.CopyFromRecordset(BANCO)
Set BANCO = Nothing
CX.Desconecta
Consulta.Show
End Sub