Autocompletar textbox mientras se escribe se muestran resultados en el listbox desde base datos ADO con Macros VBA excel
Comunidad de Todoexpertos.com
Espero que por favor me puedan ayudar con una interrogante que detallo a continuación que lo he tratado de hacer pero funciona nose que se debe. Desde ya muchas gracias.
1. Yo tengo un archivo base externo excel (base.xlsx) donde almacenaría toda la información de lo que procese en el archivo origen (factura.xlsm).
2. En el archivo origen tengo un formulario con un textbox y un listbox; en el listbox cargo todos los nombres de los cliente que están en el archivo base usando ADO de esta manera sin ningún problema:
Private Sub UserForm_Initialize()
bd = ThisWorkbook.Path & "\base.xlsx"Set conexion = New ADODB.Connection
Set datos = New ADODB.Recordsetconexion.Open "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & bd & "; Extended Properties=""Excel 12.0; HDR=YES"";"
sql = "SELECT * FROM [clientes$] order by [nombres]"
datos.Open sql, conexionWith Me.LSTCLIENTES
.Clear
.ColumnCount = datos.Fields.Count
.ColumnWidths = "390;70;225;50;50;50;65;50;50;50;50;50;50;50;50;50;50;50;"
.Column = datos.GetRows
End With
End Sub
3. El problema se da cuando hago la búsqueda del nombre del cliente en el textbox y mientras escribo en el vaya filtrando letra por letra y me muestre las coincidencias en el mismo listbox pero no funciona.
Por favor espero que me puedan ayudarme a resolverlo y saber donde esta el problema.
Private Sub TXTBUSCACLIENTES_Change()
bd = ThisWorkbook.Path & "\base.xlsx"Set conexion = New ADODB.Connection
Set datos = New ADODB.Recordsetconexion.Open "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & bd & "; Extended Properties=""Excel 12.0; HDR=YES"";"
sql = "SELECT * FROM [clientes$]" & " where [nombres] like '*" & Me.TXTBUSCACLIENTES.Text & "*'"
datos.Open sql, conexionDo While Not datos.EOF
Me.LSTCLIENTES.AddItem (datos.Fields.Item("nombres").Value)
datos.MoveNext
Loopconexion.Close
Set datos = Nothing
Set conexion = Nothing
End Sub
En espera de su pronta ayuda.
