Página 1 de 1

[RESUELTO] Ayuda con Listado Filtrado

NotaPublicado: Mar Ago 11, 2020 8:24 am
por dellorianes
Buenos días,

Estoy intentando seguir las instrucciones de este hilo, pero no consigo que el listado "Obras", del formulario, muestre los registros filtrados en función de la empresa rellenada con anterioridad.

viewtopic.php?f=31&t=6929&p=26504&hilit=filtrar+listbox#p26504

Podríais ayudarme a identificar el error?

Muchas gracias

Re: Ayuda con Listado Filtrado

NotaPublicado: Mar Ago 11, 2020 10:54 am
por RMG
Hola,

La verdad es que tenias varios errores, además no habías asignado la macro al listado empresa que es quien la lanza. Comprueba mi ejemplo con el tuyo y lo veras mejor.

Saludos

Re: Ayuda con Listado Filtrado

NotaPublicado: Mié Ago 12, 2020 11:40 am
por dellorianes
Muchas gracias!

Ya he conseguido identificar los errores y conseguido que funcione.

Gracias

Un saludo

Re: Ayuda con Listado Filtrado

NotaPublicado: Vie Ago 21, 2020 8:44 am
por dellorianes
Vuelvo a abrir el topic porque al intentar incluir la macro en la base de datos (en el ejemplo si que conseguí que funcionase) me da un error en basic.

Tengo que decir que la lista a filtrar esta dentro de un subformulario de un subformulario; aunque todos los campos que hacen referencia a la macro los tengo dentro del mismo subformulario.
Adjunto captura del error.

Gracias de nuevo

Un saludo

Re: Ayuda con Listado Filtrado

NotaPublicado: Vie Ago 21, 2020 4:56 pm
por RMG
Hola,

Para hacer referencia al formulario activo es oForm = Evento.Source.Model.Parent, pero si el control esta en un subformulario de ese formulario, debes bajar un nivel, y si estas en un subformulario de un subformulario dos niveles.

Por eso debes modificar esta linea por oForm = Evento.Source.Model.Parent.Parent.

Prueba y dices si funciona, si no adjunta una BD de ejemplo.

Saludos

Re: Ayuda con Listado Filtrado

NotaPublicado: Lun Ago 24, 2020 10:01 am
por dellorianes
Buenos días,

Gracias de nuevo por contestar.

Te añado un ejemplo de la base, simplificado.

Por si fuese relevante, la base real tiene un formulario principal (nombre). De este, cuelga un subformulario (homologación) del cual cuelgan otros 4 subformularios (1-1-4). Uno de esos 4 subformularios (Obras) es el del ejemplo que adjunto.

Re: Ayuda con Listado Filtrado

NotaPublicado: Lun Ago 24, 2020 5:46 pm
por RMG
Hola,

Fijate bien al hacer referencia a un control de poner el nombre correcto. No es lo mismo Num-Homologacion que Num_Homologacion o txtNum-Homologacion, tampoco Empresa es lo mismo que ID_Empresa, revisa en tu BD y lo veras.

Lo más conveniente es poner el mismo nombre del campo al control, te evitaras algún problema. Las relación de obras del listado Obras, no se obtienen de la tabla Obras, sino de la consulta filtrada. Y por último la macro FiltroConsulta no la puedes asignar al evento Doumento va a ser cerrado, tienes que asignar la macro Consulta para que reinicie todos los nombres de las obras.

Saludos

Re: Ayuda con Listado Filtrado

NotaPublicado: Mar Ago 25, 2020 8:30 am
por dellorianes
Hola,

Gracias de nuevo por responder tan rápido.

me he bajado el ejemplo test 3 que has subido y la lista de obras no aparece filtrada.

Yo lo que había hecho era usar para la macro todos los campos del mismo subformulario (Sub_Sub_Homologacion_Obras), de ahi que usase Num_Homologacion y aplicase el filtro al listado ID_Empresa, ambos ocultaos.

El "ID_Empresa", que aparece en la macro, lo cogí de "tabla_Obras".

Encuanto al comando:
oForm.Parent.Parent.Parent("ID_Obra").Refresh ; ID_Obra correspondería al nombre de la lista (del subformulario) en la que quiero el filtro, ¿no? Aquí si que tenía puesto ID Obra ( y ya me anoto el obtenerlas de la consulta).



Podrías echarle un vistazo a tu ejemplo? A mi no me va el filtrado.

Muchas gracias de nuevo por tu paciencia.

Un saludo

Re: Ayuda con Listado Filtrado

NotaPublicado: Mar Ago 25, 2020 11:33 am
por RMG
Hola,

Pues no se que ha podido pasar funcionaba bien. De todas formas pon esta solución, ya que el filtro de la consulta sí funciona, solo es refrescar el control.

Código: Seleccionar todo   Expandir vistaContraer vista
Sub ActualizarControl(Evento)'evento al recibir el foco Obra
   'Refrescamos el control
   Evento.Source.Model.Refresh()
End Sub


Esta macro la pones donde seleccionas la obra, en el listado obras, al recibir el foco.

Saludos

Re: Ayuda con Listado Filtrado

NotaPublicado: Mar Ago 25, 2020 12:53 pm
por dellorianes
Ahora si, conseguido!! Incluida la BD principal.

Muchísimas gracias por tu paciencia.

Cierro el hilo