27 julio, 2026

MODIFICAR BASE DE DATOS DESDE UN LISTBOX CON UN FILTRO PROGRAMADO EN ADO

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.

Donate Button with Credit Cards

¡¡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

Comparte este post

7 comentarios en «MODIFICAR BASE DE DATOS DESDE UN LISTBOX CON UN FILTRO PROGRAMADO EN ADO»

  1. 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

  2. amigo nuenas tardes, cuando aplico el ejemplo suministrado por ustedes, en excel 2016, no funciona cuando le doy doble click al lisbox por que es version 2007, es posible alguna solución en excel 2016

    Private Sub Listado_Habitantes_Click()
    Dim i As Long
    Dim dato As Integer
    For i = 0 To Listado_Habitantes.ListCount – 1
    If Listado_Habitantes.Selected(i) Then dato = Listado_Habitantes.List(i)
    Next i
    Hoja2.Cells(dato + 4, 1).Activate
    End Sub

    da error en esta linea «If Listado_Habitantes.Selected(i) Then dato = Listado_Habitantes.List(i)»

    1. En qué versión de excel lo esas ejecutando? has activado las referencias a ADO?. Qué tipo de error?

      Necesito más datos.

Los comentarios están cerrados.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies