LAS CONSULTAS TARDAN MUCHO EN EJECUTARSE

cientocien
11 de Enero del 2003
En mi ordenador las consultas no tardan mucho en ejecutarse pero cuando las llevo a otra maquina(Pentium III) van muy lentas. Por ejemplo una tarda exactamente en cargar 2,5 minutos 80 registros en un listview. A que puede deberse esto?. Esta es la funcion que decia antes que tardaba 2,5 minutos. Que puedo hacer para que no tarde tanto, porque voy a tener tablas con mas de 20 mil registros.

Gracias

Sub ListaAgente(lista As ListView, tabla As String, consulta As String, parametros As Integer)

On Error GoTo ERR_ListaCodigos:

Dim RS As Recordset
Dim cont As Integer
Dim qd As QueryDef
Dim ITEM As ListItem
Dim i As Integer
Set qd = odb.QueryDefs(consulta)
With lista
.ListItems.Clear
End With

cont = 0

Set RS = qd.OpenRecordset()

With RS

If (.RecordCount < 1) Then

Else
frmbarraProgreso.Show
frmbarraProgreso.brBarra.MIN = 0
.MoveLast
frmbarraProgreso.brBarra.MAX = .RecordCount
.MoveFirst
While (Not RS.EOF)
Set ITEM = lista.ListItems.Add(, , .Fields(0))
For i = 1 To parametros - 1
If (i = 7) Then
If (.Fields(i) = 1) Then
ITEM.SubItems(i) = "" & "SI"
Else
ITEM.SubItems(i) = "" & "NO"
End If
Else
ITEM.SubItems(i) = "" & .Fields(i)
End If
Next i

cont = cont + 1
frmbarraProgreso.brBarra.Value = cont
.MoveNext
Wend
End If
End With
Unload frmbarraProgreso
Exit Sub
ERR_ListaCodigos:
MsgBox "ERROR #" & Err.Number & ": " & Err.Description, vbExclamation, "ERROR"
End Sub

webJose
11 de Enero del 2003
Debe indexar los campos que utiliza como criterio de búsqueda en las distintas consultas. Por ejemplo, si busca frecuentemente por fecha, entonces debe indexar el o los campos de fecha de la(s) tabla(s) en la(s) que busca.