DropDown en cuadro combinado partiendo de un cuadro de texto

Partiendo de un cuadro de texto llamado txtbuscar filtro los datos a un cuadro combinado llamado cbopersonas (evento al cambiar).

Me.cboPersonas.RowSource = "SELECT Agenda.ID, [nom_pac] & "" "" & [app_pac] & "" "" & [apm_pac] AS Nombre FROM Agenda" _
& " WHERE ([nom_pac] & "" "" & [app_pac] & "" "" & [apm_pac]) " _
& "LIKE '*" & Me.txtBuscar.Text & "*' ORDER BY [nom_pac] & "" "" & [app_pac] & "" "" & [apm_pac]"

Lo que pretendo es que el resultado de esa búsqueda se refleje en el cuadro combinado (cosa que ya hace si le doy click se despliega con los resultados) pero que el mismo cuadro combinado se despliegue con lo que vaya encontrando, esto es: Tecleo en el cuadro de texto lo que busco pero el cuadro combinado al encontrar resultados se debe de expander o comprimir según sea el caso (en la imagen tuve que dar click en el cuadro combinado para que se despliegue).

Intente con:

Me. CboPersonas. Dropdown desde txtbuscar (evento al cambiar, al entrar)

Enviándome el error 2185 No se puede hacer referencia a una propiedad o método para un control a menos que el control tenga el enfoque. He puesto el foco en ese control y el mismo error.

¿Me puedes ilustrar?

Respuesta
1

Juan Daniel!
Cuanto tiempo sin verte por aquí. Con permiso de Neckkito, al que diriges la pregunta, decirte que desde mi punto de vista, lo que pretendes no tiene mucho sentido, porque cuando el combo pierda el enfoque para seguir escribiendo en el textbox, se te volverá a contraer.

Como te dice el mensaje de error, para poder usar dropdown, el cuadro combinado tiene que tener el enfoque.

Si haces esto:

Private Sub txtBuscar_Change()
Me.cboPersonas.RowSource = "SELECT Agenda.ID, [nom_pac] & "" "" & [app_pac] & "" "" & [apm_pac] AS Nombre FROM Agenda" _
& " WHERE ([nom_pac] & "" "" & [app_pac] & "" "" & [apm_pac]) " _
& "LIKE '*" & Me.txtBuscar.Text & "*' ORDER BY [nom_pac] & "" "" & [app_pac] & "" "" & [apm_pac]"
Me. CboPersonas. Requery
Me. CboPersonas. SetFocus
Me. CboPersonas. Dropdown

End Sub

E intentas buscar, se te despliega en la primera letra del textbox, pero al tener el foco ya el propio combo, la siguiente letra te la busca dentro del combo, que no es lo que pretendes.

Si le añades a ese código un Me.txtBuscar.SetFocus, tampoco resuelves el problema, pues cada nueva letra se sobreescribe a la anterior, y además, el cuadro combinado no se despliega, por lo que te comentaba de perder el enfoque...

Creo que es mejor que lo dejes como lo tenías en versiones anteriores, con un cuadro de lista en vez de uno combinado...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas