Filtro en campo de subformulario Access

Tengo un formulario "Facturas Listado Total" con un subformulario "Facturas Listado Detalle" y este contiene un campo "Detalle Detalle", con el detalle de la factura.

En el encabezado del formulario tengo un textbox que después de actualizar ejecuta este código:

(La web no me permite lanzar la pregunta porque dice que son demasiadas palabras seguidas sin espacio)

Pero el resultado que me muestra es vacío.

He intentado de varias maneras más pero, o da error de código o el resultado es igualmente vacío.

¿Alguna sugerencia para que pueda localizar este contenido?

PD. Los nombres de formulario, subformulario y campo son seguidos, pero la web no me permite

2 respuestas

Respuesta
2

¿Cómo va a saber el sistema lo que es Filter?

Tendrás que poner en primera línea

dim filter as string

Gracias Julián.

La verdad es que en los demás cuadros de búsqueda no está declarada la variable y funcionan bien (igual estoy diciendo una burrada)

He probado a indicarlo, pero el resultado es vacío.

Me acabo de dar cuenta, que lo que dice Enrique es totalmente cierto. El filtro se lo estas aplicando al formulario. Tienes que poner que filtre el subformulario. Dicho esto, no entiendo que tengas que filtrarlo. Por ejemplo, tengo el Formulario 1 con un subformulario Clientes que depende de la tabla del mismo nombre. En el formulario tengo un cuadro de texto Texto10. En él escribo una cadena de un pais

Puedes ver que el cursor aún está en el cuadro de texto. Al pulsar Enter

Y el código del evento Después de actualizar del cuadro de texto Texto10 es

Private Sub Texto10_AfterUpdate()
Me.Clientes.Form.RecordSource = "select * from clientes where pais like ""*""& '" & Me.Texto10 & "'&""*"""
End Sub

Es decir, que el origen de registros del subformulario sean aquellos de la tabla Clientes en que el campo Pais contenga la cadena que acabo de escribir. Y es sólo una línea de código.

Respuesta
2

Creo que la variable 'Filter' es innecesaria, mientras no se active el la propiedad FILTER del formulario, se puede modificar su contenido con entera libertad.

La ruta a 'DetalleDetalle' quizás no es la optima, la ortodoxa es:

Forms! FacturasListadoTotal! FacturasListadoDetalle!FORM! DetalleDetalle

Lo que me llama la atención es que el filtro se le esta aplicando al formulario y debería aplicarse al subformulario y si es así, lo adecuado seria aplicárselo a la propiedad filter del subformulario y simplificarlo un poco (él ya sabe que es un subformulario).

Me!FacturasListadoDetalle.Form.Filter = "DetalleDetalle Like '* " & Me.FiltroDetalleFactura & "*'"

 Me!FacturasListadoDetalle.Form.FilterOn = True

Gracias Enrique.

Probando el código que me indicas al final me da error en la primera línea

Me!FacturasListadoDetalle.Form.filter = "DetalleDetalle Like '* " & Me.FiltroDetalleFactura & "*'"

alguna sugerencia?

Me ha basado para crear el código en la imagen que has aportado y ... que no funcionaba.

No puedo garantizar que los nombres que he deducido, se correspondan con los reales y ello puede ser la causa del problema (que exista un subformulario que se llame exactamente igual y que el nombre del campo también sea idéntico, verifica en tu aplicación esos detalles.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas