Hace unos días tras una publicación de un post en LinkedIn un lector me comentó acerca del post que a mayor número de registros más lentamente funcionaba el filtrado. En concreto esta es la publicación: MODIFICAR BASE DE DATOS DESDE UN LISTBOX CON UN FILTRO APLICADO
En efecto, el comportamiento se ralentiza según el número de registros. Esto es normal dato que para realizar la programación me he basado en bucles (for-next), y un de los problemas de este tipo de técnicas es la lentitud.
Para solucionarlo en caso de bases de datos más grandes he reprogramado el código aportando ADO y conseguir así con el motor de bases de datos relacionales y con sentencias SQL mayor rapidez.
No voy a reproducir aquí toda la programación, en la teoría cada elemento hace lo mismo que en el post inicial pero utilizando otros instrumentos, lo único nuevo es haber incluido ADO a la hora de aplicar los filtros y pasar el resultado al listbox a través de un recordset.
Sin duda, ahora veréis como el tiempo se reduce claramente a la hora de ejecutar el formulario.
Os dejo aquí el archivo: MODIFICAR BASE DE DATOS DESDE UN LISTBOX CON UN FILTRO PROGRAMADO EN ADO
Y esto todo, aportando una nueva forma de hacer las cosas.
¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.
¡¡Muchas gracias!!
Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies
Hola Segu, me da un error «3706» en tiempo de ejecución. No se encontró el proveedor especificado. Es posible que no esté instalado correctamente.
Sabes que puede pasar?
gracias y un saludo
Solucionado, actualizada versión.
Hola Josep. Tendría que ver un ejemplo con ese error para verificar cuál podría ser la solución. Saludos.
hola Segu, te lo he mandado
Muchas gracias si me puedes ayudar
Hola Josep, Salvo error no he ha llegado. Revisaré otra vez cuando finalicen estos días de vacaciones.