¿Filtrar sub formulario según campo de formulario?

Quisiera me ayudaran en un formulario que estoy creando.

Tengo un formulario "FPersonal" Donde tengo un campo llamado "CÓDIGO", BASADO EN UNA TABLA LLAMADA "TPersonal"

TENGO UNA TABLA "HIJOS" con dos campos: 1. (Código madre) 2. (Código Padre)

Necesito en el formulario "FPersonal" filtrar a través de un sub-formulario los registros de los hijos de cada persona registrada en la tabla "Tpersonal" a través del campo "CODIGO" del Formulario "FPersonal"

No se si sea posible.

1 respuesta

Respuesta
2

Puedes hacerlo de varias formas, filtrando o modificando el origen de datos del subformulario.

Por ejemplo, filtrando:

1º/ En el evento "Al activar registro" del formulario "FPersonal", pones:

Dim elFiltro as String

elFiltro="[Código madre]=" & Me.[CÓDIGO] & " OR [Código padre]=" & Me.[CÓDIGO]

Me.NombreSubform.Form.Filter=elFiltro

Me.NombreSubform.Form.FilterOn=True

Cambiando el origen del subform sería parecido, pero con este código:

Me.NombreSubform.Form.Recordsource="SELECT * FROM HIJOS WHERE [Código madre]=" & Me.[CÓDIGO] & " OR [Código padre]=" & Me.[CÓDIGO]

Me.NombreSubform.Form.Requery

En todo caso tendrás que cambiar lo que está en negrita por el nombre de tu subformulario.

Un saludo.


Hola buen día. Te agradezco tu pronta respuesta.

He hecho de la primera forma y me salta un cuadro diciéndome "Introduzca el valor parámetro" y no me muestra nada en el subformulario

esto es cada vez que muevo los registros del Formulario "Personal"

- No probe con la segunda forma, "Cambiando el origen" no supe donde poner "

Me.NombreSubform.Form.Recordsource="SELECT * FROM HIJOS WHERE [Código madre]=" & Me.[CÓDIGO] & " OR [Código padre]=" & Me.[CÓDIGO]

Me.NombreSubform.Form.Requery"

DE ANTE MANO GRACIAS POR TU TIEMPO!!!

¿Tu formulario se llama NombreSubform?... Lo dudo mucho...

Como te decía en mi primera respuesta:

En todo caso tendrás que cambiar lo que está en negrita por el nombre de tu subformulario.

Gracias!

Perdón! No me di a entender!

Este código no supe donde ponerlo!

Me.NombreSubform.Form.Recordsource="SELECT * FROM HIJOS WHERE [Código madre]=" & Me.[CÓDIGO] & " OR [Código padre]=" & Me.[CÓDIGO]

Me.NombreSubform.Form.Requery"

Esta como me lo mandaste no lo toque,

¡Claro que mi sub formulario no se llama asi!

Solo la primera opción que me diste utilice, que seria.

Dim elFiltro as String

elFiltro="[Código madre]=" & Me.[CÓDIGO] & " OR [Código padre]=" & Me.[CÓDIGO]

Me.NombreSubform.Form.Filter=elFiltro

Me.NombreSubform.Form.FilterOn=True

Y me salta un cuadro diciéndome "Introduzca el valor parámetro" Y no aparece nada en el subformulario.

No se si me hago entender, disculpa

Gracias!

Vamos a ver... tú conoces tu BD, yo no, y no sé los nombres de los objetos que tiene... Por tanto, el código que te doy es muy general y tendrás que adaptarlo a los nombres que tu tienes en tu base de datos.

Las dos opciones que te doy (son alternativas, o usas una o la otra, pero nunca las dos a la vez) van en el mismo evento. En cualquiera de ellas tienes que poner el nombre de tu subformulario en vez de los que te pongo en negrita, como ya te dije.

El resto de nombres los saqué del enunciado de tu pregunta, pero no tengo forma de saber si son los que realmente tienes o no. Eso tendrás que verlo tú, y si no son, cambiarlos.

Decir que te pide un parámetro (con "Introduzca el valor parámetro") solo me dice que tienes algún nombre mal, pero no cual. Posibilidades tienes 3: código madre, código padre o código.

Revisa los nombres que tienes en tu formulario y tabla, y pon los mismos en el código. Y si los nombres llevan acentos o espacios, ponlos entre corchetes.

Excelente! Te agradezco, que tomes tanto tiempo para ayudarme. En serio valoro eso.

Ahorita veré eso y luego te escribo!

Hola que tal!

No he escrito pues no he estado en casa.

Ya probé, y fíjate que ya no me da el error,

Pero resulta que:

Me toma lo que esta escrito en el Campo "CODIGO" del formulario "Fpersonal" y me lo muestra en los dos campos "Código madre" y "Código padre" del Subformulario "SubHijos".

No se que estaría haciendo mal!

ASÍ ME QUEDA

Private Sub Form_Current()
Dim elFiltro As String

elFiltro = "[Código madre]=" & Me.[CÓDIGO] & " OR [Código padre]=" & Me.[CÓDIGO]

Me.Subhijos.Form.Filter = elFiltro

Me.Subhijos.Form.FilterOn = True
End Sub

Obviamente, pues el filtro le dice que te muestre en el subformulario aquellos registros cuyo código madre o código padre coincidan con el valor del campo Código de tu formulario.

Eso es lo que yo entendí que buscabas hacer...

Si, pero no lo hace así, no me filtra nada, sino que me muestra lo que está en el campo "Codigo" aun en los registros vacillos del sub formulario. Veré si te mando una copia de mi archivo al momento 

Y te agradezco en verdad tu atención.

Pues mira, ya no entiendo nada, ni lo que quieres, ni lo que haces ni lo que te pasa... Esperaré a que mandes la copia de tu archivo para verlo...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas