Access - ¿No entiendo porque es lento este proceso?

 
Vista:
sin imagen de perfil
Val: 4
Ha disminuido su posición en 12 puestos en Access (en relación al último mes)
Gráfica de Access

¿No entiendo porque es lento este proceso?

Publicado por antonio (2 intervenciones) el 10/05/2020 16:52:29
cuando ejecuto esta pequeña porcion del codigo se ralentiza de tal forma que llega a tarda hasta unos tres segundos en eliminar unos 30 elementos de las listas. El caso es que cuando le pongo interrupciones es inmediato,pero al ejecutarlo se ralentiza. Se trata de dejar limpias las dos listas(con lo socorrido que era listbox.clear).
¿Conoceis algun otro metodo? Muchas gracias.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
' utilizado para tomar tiempos de paso
Debug.Print "pasa por aqui 1 " & Time
 
indice = ((LinLineas.ListCount) - 1)
 
Do Until indice < 0
 
    LinLineasArticulos.RemoveItem (indice)
    LinListaPrecio.RemoveItem (indice)
    indice = indice - 1
 
Loop
 
Debug.Print "pasa por aqui 2 " & Time
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

¿No entiendo porque es lento este proceso?

Publicado por Anonimo (3316 intervenciones) el 10/05/2020 22:20:03
Un cuadro de lista o bien depende de un origen (tabla, consulta) o bien se le añaden elementos de forma libre (lista de valores).

Para limpiar el contenido:

Caso uno (depende de un origen de datos externo):
- bastara con eliminarle el origen de datos (no rompe nada, simplemente queda vacío no tiene nada que mostrar)

Caso dos, se le adjudican libremente valores, su origen es una lista de valores separados por comas (o punto y coma)
Se le adjudica como origen de datos una cadena de texto vacía
= ""

Se perderá esa lista de datos (sus ítems) pero ¿no es eso lo que se desea?.

¿Por qué tarda en hacer el borrado? ….
- porque se le hace perder el tiempo al jugar con los índices (y cada vez que borra un ítem tiene que rehacer lo que ya tiene o lo que le queda).

Y si se desea borra uno a uno el contenido … no se puede hacer borrando siempre el primero? … porque borrado uno el resto se reajusta y el primero (mientras exista alguno) siempre estará presente (sea cual sea)..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 4
Ha disminuido su posición en 12 puestos en Access (en relación al último mes)
Gráfica de Access

¿No entiendo porque es lento este proceso?

Publicado por antonio (2 intervenciones) el 11/05/2020 09:10:22
ok.... Muchas gracias por la aclaracion de la perdida de tiempo... Intentare plantearlo de otro modo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar