
Cambiar filtro de una consulta en un evento para subinforme dinámico
Publicado por Alejandro (9 intervenciones) el 13/09/2017 10:27:47
Hola a todos, programadores!
Tengo una cuestión que quiero preguntaros sobre access, relacionada con consultas e informes, la cual voy a intentar explicar brevisimamente ya que si te extiendes mucho sueles confundir.
Tengo una tabla, (DNAS), simple, con un montón de campos pero voy a poner los importantes. Como dato os digo que es una tabla de pacientes de hospital (así lo visualizareis mejor). Quedémonos con estos datos:
- ID
- NOMBRE
- EDAD
- SEXO
- DNI
- FAMILY_ID (muy importante)
- OBSERVACIONES (comentario sobre si el paciente tiene enfermedades o no)
*Campo importante el FAMILY_ID, ya que esto es un número que relaciona un registro con otro que puede tener el mismo FAMILY_ID (en la misma tabla), es decir, que por ejemplo todos los registros con FAMILY_ID = 140 corresponden a miembros de la misma familia.
Mi formulario es un control ficha, para los que no sabéis lo que es, es una ventanita con el formulario para visualizar y/o añadir registros, con sus botoncitos de paciente anterior o siguiente, de nuevo registro, un desplegable con los nombres de todos los pacientes para seleccionar uno y ver sus datos, un cuadrito de búsqueda por DNI, etc, todo ello funcionando correctamente, PERO, como es un control ficha, puedes poner pestañas arriba del formulario que te dan acceso a otras ventanas, pero en el mismo formulario, las cuales si por ejemplo estas en el registro 3 y te vas a otra pestaña, se mantiene ese registro 3 ya que no estas saliendo del formulario ni nada, y lo quiero así por lo siguiente:
Lo que yo quería es, en mi control ficha, con 2 pestañas, la primera el formulario con todos los datos a rellenar o para visualizar o modificar, cosa que ya tengo hecha y todo bien, y en la otra pestaña, llamada "Familiares", quería pegar un informe (tipo lista hacia abajo), que me mostrara una lista de los familiares con todos sus datos en horizontal, del paciente que haya dejado seleccionado en la primera pestaña, es decir que tú por ejemplo te vas al registro 5 en la pestaña 1 "Datos paciente" y es pepito gonzalez perez y ves sus datos, y al dar a la pestaña "Familiares", se hiciera un evento que cogiera el campo FAMILY_ID (supongamos el "211"), y aplicara dicha cláusula WHERE a la consulta en la que se basa el formulario, para que siempre que se cambie de registro activo en el formulario, cambie el subinforme que tengo pegado en "Familiares" y así ver en una lista a todos los familiares de pepito gonzalez perez, él inclusíve, en vez de poner un botoncito que diga "Generar informe de familiares" donde sé que sería usando el OpenForm con el filtro que quisiera.
Básicamente estoy intentando que el subinforme que tengo en la pestaña "Familiares" sea dinámico en función del parámetro del FAMILY_ID, aplicando el filtro a la consulta y dando algún tipo de orden de comando para cambiar la propiedad del filtro de la consulta o algo así.
Lo único que había pensado es, que el evento donde tiene que aplicarse el filtro o bien lo pongo cuando se clikea la pestaña "Familiares", o bien en cada botón que me cambie de registro, (paciente siguiente, anterior, el desplegable con los pacientes, el buscador por dni, etc).
Buscando por la red solo encuentro soluciones referidas a generar el informe con el filtro que quiera haciendo lo de OpenForm con filtros, pero lo que quiero es que mi subinforme cambie nada mas cambiar el registro activo. No sé si se podrá cambiar la propiedad filtro de una consulta, o hay que hacer algo raro al crear la consulta, ya que de momento la tengo creada y asociada al informe, pero me suelta todos los registros porque no sé como meter ahi el WHERE "dinámico".
Espero que lo hayáis entendido, normalmente me dicen que se me da bien explicar los problemas pero si necesitais que suba alguna foto y explicarlo con ellas, decídmelo y lo hago, aunque os advierto que en el formulario tengo muchisimos mas campos, lo he simplificado para pedir ayuda.
Muchas gracias de antemano y espero que mi duda sea constructiva.
Tengo una cuestión que quiero preguntaros sobre access, relacionada con consultas e informes, la cual voy a intentar explicar brevisimamente ya que si te extiendes mucho sueles confundir.
Tengo una tabla, (DNAS), simple, con un montón de campos pero voy a poner los importantes. Como dato os digo que es una tabla de pacientes de hospital (así lo visualizareis mejor). Quedémonos con estos datos:
- ID
- NOMBRE
- EDAD
- SEXO
- DNI
- FAMILY_ID (muy importante)
- OBSERVACIONES (comentario sobre si el paciente tiene enfermedades o no)
*Campo importante el FAMILY_ID, ya que esto es un número que relaciona un registro con otro que puede tener el mismo FAMILY_ID (en la misma tabla), es decir, que por ejemplo todos los registros con FAMILY_ID = 140 corresponden a miembros de la misma familia.
Mi formulario es un control ficha, para los que no sabéis lo que es, es una ventanita con el formulario para visualizar y/o añadir registros, con sus botoncitos de paciente anterior o siguiente, de nuevo registro, un desplegable con los nombres de todos los pacientes para seleccionar uno y ver sus datos, un cuadrito de búsqueda por DNI, etc, todo ello funcionando correctamente, PERO, como es un control ficha, puedes poner pestañas arriba del formulario que te dan acceso a otras ventanas, pero en el mismo formulario, las cuales si por ejemplo estas en el registro 3 y te vas a otra pestaña, se mantiene ese registro 3 ya que no estas saliendo del formulario ni nada, y lo quiero así por lo siguiente:
Lo que yo quería es, en mi control ficha, con 2 pestañas, la primera el formulario con todos los datos a rellenar o para visualizar o modificar, cosa que ya tengo hecha y todo bien, y en la otra pestaña, llamada "Familiares", quería pegar un informe (tipo lista hacia abajo), que me mostrara una lista de los familiares con todos sus datos en horizontal, del paciente que haya dejado seleccionado en la primera pestaña, es decir que tú por ejemplo te vas al registro 5 en la pestaña 1 "Datos paciente" y es pepito gonzalez perez y ves sus datos, y al dar a la pestaña "Familiares", se hiciera un evento que cogiera el campo FAMILY_ID (supongamos el "211"), y aplicara dicha cláusula WHERE a la consulta en la que se basa el formulario, para que siempre que se cambie de registro activo en el formulario, cambie el subinforme que tengo pegado en "Familiares" y así ver en una lista a todos los familiares de pepito gonzalez perez, él inclusíve, en vez de poner un botoncito que diga "Generar informe de familiares" donde sé que sería usando el OpenForm con el filtro que quisiera.
Básicamente estoy intentando que el subinforme que tengo en la pestaña "Familiares" sea dinámico en función del parámetro del FAMILY_ID, aplicando el filtro a la consulta y dando algún tipo de orden de comando para cambiar la propiedad del filtro de la consulta o algo así.
Lo único que había pensado es, que el evento donde tiene que aplicarse el filtro o bien lo pongo cuando se clikea la pestaña "Familiares", o bien en cada botón que me cambie de registro, (paciente siguiente, anterior, el desplegable con los pacientes, el buscador por dni, etc).
Buscando por la red solo encuentro soluciones referidas a generar el informe con el filtro que quiera haciendo lo de OpenForm con filtros, pero lo que quiero es que mi subinforme cambie nada mas cambiar el registro activo. No sé si se podrá cambiar la propiedad filtro de una consulta, o hay que hacer algo raro al crear la consulta, ya que de momento la tengo creada y asociada al informe, pero me suelta todos los registros porque no sé como meter ahi el WHERE "dinámico".
Espero que lo hayáis entendido, normalmente me dicen que se me da bien explicar los problemas pero si necesitais que suba alguna foto y explicarlo con ellas, decídmelo y lo hago, aunque os advierto que en el formulario tengo muchisimos mas campos, lo he simplificado para pedir ayuda.
Muchas gracias de antemano y espero que mi duda sea constructiva.
Valora esta pregunta


0