Imprimir página | Cerrar ventana

Cuadro combinado que filtre al escribir

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=84982
Fecha de impresión: 27/Marzo/2026 a las 06:03


Tema: Cuadro combinado que filtre al escribir
Publicado por: Ajito
Asunto: Cuadro combinado que filtre al escribir
Fecha de publicación: 31/Enero/2020 a las 20:20
Hola a todos. Es mi primer mensaje. Espero que sea el primero de muchos y en lo que pueda, poder echar una mano!

Resulta que tengo un formulario con un cuadro combinado. Este cuadro despliega un listado de calles de una tabla llamada "Vias".

En las propiedades del cuadro, "Datos", "Origen de la Fila" tiene la sintaxis sql: SELECT [Vias].[Via] FROM Vias;

Hasta ahí funciona correctamente.

Lo que quisiera lograr es que segun vaya escribiendo en el cuadro me filtre por palabras.

Es decir, ahora mismo si escribo la palabra: "Alegria" me aparece porque hay una calle llamada de esa manera. Pero tambien existe una calle llamada "Plaza de la Alegria" pues no aparece... ya que solo busca por el comienzo de la palabra. Para encontrar esta, tendria que comenzar a escribir "Plaza de la..."

Y lo mismo pasa con muchas calles mas.

Llevo toda la semana buscando una solucion, he probado tutoriales y nada Cry

Imagino que será solucionable con vba pero es que mi nivel es nulo.

Gracias por adelantado.








Respuestas:
Publicado por: rokoko
Fecha de publicación: 31/Enero/2020 a las 20:36
Bienvenido al foro.

Creo que esto es lo que buscas..
http://www.mvp-access.com/foro/combo-con-like_topic79307.html

http://www.mvp-access.com/foro/buscador-que-sugiere-palabras-mientras-se-escribe_topic80380.html



En el evento al cambiar tienes que poner la sql y conforme escribes se va actualizando.
Busca en el foro o google  por buscadores access y te saldran bastantes cosas


Publicado por: VIMIPAS
Fecha de publicación: 31/Enero/2020 a las 21:53
Buenas noches.

Y este está más pulido que el primero que ha puesto rokoko.

http://www.mvp-access.com/foro/combos-cuadros-lista-subformularios-like-e-instr_topic81077.html" rel="nofollow - http://www.mvp-access.com/foro/combos-cuadros-lista-subformularios-like-e-instr_topic81077.html

Saludos.

P.D.: En cuanto a tu nivel, ya depende de ti exclusivamente a donde quieras llegar, nosotros también empezamos (en algún momento) igual que tu.


-------------
Gracias


Publicado por: Ajito
Fecha de publicación: 31/Enero/2020 a las 23:47
Muchas gracias Rokoko y Vimipas por las respuestas.

Uuuufff, tengo que repasarme muy bien esos ejemplos. Estoy muy verde en vba y me suena un poco a chino, la verdad.

Yo en Access mas o menos me defiendo bien, es con vba donde me gustaria comenzar a despegar. Aprovecho la oportunidad para preguntaros si me podeis recomendar algun curso o libro para ir empezando?

Gracias de nuevo.


Publicado por: emiliove
Fecha de publicación: 01/Febrero/2020 a las 00:10
Y no has mirado los dos excelentes cursos que están http://www.mvp-access.com/foro/curso-de-access-y-vba_forum19.html" rel="nofollow - aquí .

Saludos.


Publicado por: Ajito
Fecha de publicación: 01/Febrero/2020 a las 00:53
Publicado originalmente por emiliove emiliove escribió:

Y no has mirado los dos excelentes cursos que están http://www.mvp-access.com/foro/curso-de-access-y-vba_forum19.html" rel="nofollow - aquí .

Saludos.


Acabo de aterrizar en el foro y no los habia visto. Genial, me voy a poner con ellos ya que es un tema que me interesa mucho.

Gracias!


Publicado por: Ajito
Fecha de publicación: 02/Febrero/2020 a las 13:40
Señores, disculpen que siga dando la lata con esto... Desde el viernes estoy probando de todo y no lo logro... a este paso, me corto las venas, jejeje.

Ya por ultimo estoy probando un codigo que vi en este mismo foro, ya que leyendo el hilo lo que el usuario pide sea asemeja mucho a lo que yo quiero, pero adaptandolo a mi cuadro combinado y consulta:

Dim miSql As String
Private Sub Cuadro_combinado113_Change()
   Dim PALABRA As String

   PALABRA = Cuadro_combinado113.Text

   If Len(Nz(PALABRA, "")) = 0 Then  
      MiSql= "SELECT [Vias].[Via] FROM Vias;" 
      PresentarSeleccion
      Exit Sub
   End If
   miSql = "Vias.Via LIKE ""*" & PALABRA & "*"""
   miSql = "SELECT [Vias].[Via] FROM Vias" & _
         " HAVING/WHERE " & miSql & " ORDER BY Vias.Via;"  
   PresentarSeleccion
End Sub

Private Sub Cuadro_combinado113_Enter()
   Cuadro_combinado113.Dropdown
End Sub

Sub PresentarSeleccion()
   Cuadro_combinado113.RowSource = miSql  
End Sub

Que puede estar fallando?

Mi cuadro combinado se llama: Cuadro_combinado113
y la consulta de origen de fila es: SELECT [Vias].[Via] FROM Vias;

PD. Estuve mirando los ejemplos que me pasaron, pero me saltaba un tipo de error al abrir las bases y no me permite bien probarlas.

Un saludo, y gracias por adelantado.


Publicado por: xavi
Fecha de publicación: 03/Febrero/2020 a las 11:31
Publicado originalmente por Ajito Ajito escribió:

"HAVING/WHERE"

O el uno o el otro. El HAVING es para consultas agrupadas. Yo utilizaria el WHERE


-------------
Xavi, un minyó de Terrassa

http://www.llodax.com" rel="nofollow - Mi web


Publicado por: VIMIPAS
Fecha de publicación: 03/Febrero/2020 a las 21:56
Muy buenas noches de nuevo.

Ajito, cuando cree los ejemplos que te han puesto, los hice con Access 2003.

Es muy posible que te falte alguna librería (porque supongo que no estás usando 2003).

Si estás interesado podemos tratar de buscarte la solución en tu Access (explicarte como poner lo que te falte).

Tu indicarás.

Saludos.


-------------
Gracias


Publicado por: Ajito
Fecha de publicación: 03/Febrero/2020 a las 22:32
Publicado originalmente por xavi xavi escribió:

Publicado originalmente por Ajito Ajito escribió:

"HAVING/WHERE"

O el uno o el otro. El HAVING es para consultas agrupadas. Yo utilizaria el WHERE


Gracias por responder Xavi. Pues si, sobraba una de las dos. Mañana lo pruebo a ver si funciona asi.

Ahora he podido solucionarlo con otro código que investigando por ahi he encontrado. Ahora lo pongo en el siguiente mensaje.



Publicado por: Ajito
Fecha de publicación: 03/Febrero/2020 a las 22:41
Publicado originalmente por VIMIPAS VIMIPAS escribió:

Muy buenas noches de nuevo.

Ajito, cuando cree los ejemplos que te han puesto, los hice con Access 2003.

Es muy posible que te falte alguna librería (porque supongo que no estás usando 2003).

Si estás interesado podemos tratar de buscarte la solución en tu Access (explicarte como poner lo que te falte).

Tu indicarás.

Saludos.


De nuevo muchas gracias por la ayuda.

Bueno, he podido solucionar el problema que tenia con el cuadro combinado. Me he partido los cuernos todo el fin de semana probando codigos de todos lados... creo que hasta voy a soñar con ellos, jeje.

Dejo aqui la solución que me ha funcionado por si la quereis ver o le sirve a alguien.

Private Sub Cuadro_combinado113_Change()
Dim strSQL As String
If Len(Me.Cuadro_combinado113.Text) > 0 Then
strSQL = "SELECT Vias.Via FROM Vias WHERE (((Vias.Via) Like '*" & Me.Cuadro_combinado113.Text & "*')) ORDER BY Vias.Via;"
Else
strSQL = "SELECT Vias.Via FROM Vias ORDER BY Vias.Via;"   
End If
Me.Cuadro_combinado113.RowSource = strSQL
Me.Cuadro_combinado113.Dropdown
End Sub

Seguramente las soluciones que me habeis propuesto funcionan... solo que entre tanta prueba... y que esto aun me suena a chino mas que posiblemente haya metido la pata en algo y no podia hacerlo funcionar.

Estoy contento porque esto me va a servir en mi trabajo, y sobretodo, porque ya algunas cosillas comienzo a comprender de este lenguaje que pienso seguir estudiando.

Lo de los ejemplos en Access 2003 me funcionó en el ordenador de mi casa... (en el del trabajo no me funcionaba.) Así que me vienen genial para analizarlos e ir quedándome con mas cosas.

De nuevo gracias por vuestra paciencia y conocimientos. Sé que voy a aprender mucho en este foro.

Saludos!


Publicado por: VIMIPAS
Fecha de publicación: 03/Febrero/2020 a las 23:56
Gracias a ti por compartir tus conocimientos con nosotros.... y que seas bienvenido a este foro, por supuesto. Gente que se rompa los cuernos como veo que tu haces con cada problema.... cada vez quedan menos.... por desgracia.

Lo dicho "bienvenido", en negrita y en rojo.


-------------
Gracias


Publicado por: VIMIPAS
Fecha de publicación: 03/Febrero/2020 a las 23:58
Por cierto, se me pasaba: Cada vez que tu creas que has terminado con una de las preguntas que has hecho, es decir que ha quedado resuelta, debes solicitar que te cierren el hilo (lo digo por si es el caso, como parece, salvo que quieras añadir algo mas).

Saludos


-------------
Gracias


Publicado por: Ajito
Fecha de publicación: 04/Febrero/2020 a las 08:52
Pues ya esta todo dicho! Si, podemos cerrar el hilo.

De nuevo, muchas gracias!



Imprimir página | Cerrar ventana