** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Cuadro combinado que filtre al escribir
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoCuadro combinado que filtre al escribir

 Responder Responder
Autor
Mensaje
Ajito Ver desplegable
Habitual
Habitual


Unido: 31/Enero/2020
Localización: Las Palmas
Estado: Sin conexión
Puntos: 78
Enlace directo a este mensaje Tema: Cuadro combinado que filtre al escribir
    Enviado: 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.





Arriba
rokoko Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 16/Febrero/2008
Localización: Pamplona
Estado: Sin conexión
Puntos: 3071
Enlace directo a este mensaje Enviado: 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


Editado por rokoko - 31/Enero/2020 a las 20:37
Arriba
VIMIPAS Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 06/Enero/2006
Localización: ESPAÑA
Estado: Sin conexión
Puntos: 5462
Enlace directo a este mensaje Enviado: 31/Enero/2020 a las 21:53
Buenas noches.

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


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.


Editado por VIMIPAS - 31/Enero/2020 a las 21:55
Gracias
Arriba
Ajito Ver desplegable
Habitual
Habitual


Unido: 31/Enero/2020
Localización: Las Palmas
Estado: Sin conexión
Puntos: 78
Enlace directo a este mensaje Enviado: 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.
Arriba
emiliove Ver desplegable
Administrador
Administrador


Unido: 16/Junio/2009
Localización: Mexico
Estado: Sin conexión
Puntos: 5704
Enlace directo a este mensaje Enviado: 01/Febrero/2020 a las 00:10
Y no has mirado los dos excelentes cursos que están aquí.

Saludos.
Arriba
Ajito Ver desplegable
Habitual
Habitual


Unido: 31/Enero/2020
Localización: Las Palmas
Estado: Sin conexión
Puntos: 78
Enlace directo a este mensaje Enviado: 01/Febrero/2020 a las 00:53
Publicado originalmente por emiliove emiliove escribió:

Y no has mirado los dos excelentes cursos que están 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!
Arriba
Ajito Ver desplegable
Habitual
Habitual


Unido: 31/Enero/2020
Localización: Las Palmas
Estado: Sin conexión
Puntos: 78
Enlace directo a este mensaje Enviado: 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.


Editado por Ajito - 02/Febrero/2020 a las 13:41
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14926
Enlace directo a este mensaje Enviado: 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

Mi web
Arriba
VIMIPAS Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 06/Enero/2006
Localización: ESPAÑA
Estado: Sin conexión
Puntos: 5462
Enlace directo a este mensaje Enviado: 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
Arriba
Ajito Ver desplegable
Habitual
Habitual


Unido: 31/Enero/2020
Localización: Las Palmas
Estado: Sin conexión
Puntos: 78
Enlace directo a este mensaje Enviado: 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.

Arriba
Ajito Ver desplegable
Habitual
Habitual


Unido: 31/Enero/2020
Localización: Las Palmas
Estado: Sin conexión
Puntos: 78
Enlace directo a este mensaje Enviado: 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!


Editado por Ajito - 03/Febrero/2020 a las 22:42
Arriba
VIMIPAS Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 06/Enero/2006
Localización: ESPAÑA
Estado: Sin conexión
Puntos: 5462
Enlace directo a este mensaje Enviado: 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
Arriba
VIMIPAS Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 06/Enero/2006
Localización: ESPAÑA
Estado: Sin conexión
Puntos: 5462
Enlace directo a este mensaje Enviado: 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
Arriba
Ajito Ver desplegable
Habitual
Habitual


Unido: 31/Enero/2020
Localización: Las Palmas
Estado: Sin conexión
Puntos: 78
Enlace directo a este mensaje Enviado: 04/Febrero/2020 a las 08:52
Pues ya esta todo dicho! Si, podemos cerrar el hilo.

De nuevo, muchas gracias!
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable