Access - Modificar registros de un informe mediante formulario

   
Vista:

Modificar registros de un informe mediante formulario

Publicado por Michun (4 intervenciones) el 20/09/2014 10:49:50
Hola a todos!

Seguro que mi consulta es una chorrada, pero es que soy autodidacta y me he metido en algo que creo es demasiado para mi... en fin, ahí va la cosa.

Tengo una base de datos que registra cada año la lista de seminarios, grupos, alumnos, solicitudes de cada alumno, los profesores... cada cosa en su tablita con sus datos. He conseguido que todo vaya super bien, demasiado para mis conocimientos, creo...

Para terminar con todo, necesito hacer un informe con listados de alumnos, teniendo en cuenta, el curso, el profesor, el seminario y el grupo.

He creado un formulario "LISTAS" en el que hay cuatro listas desplegables para cada una de las cuatro cosas que he comentado. Cada lista condiciona la lista siguiente. CURSO >PROFESORES > SEMINARIOS > GRUPOS.

He hecho el codigo, con el que consigo que en un subformulario "SUBLISTAS" de este formulario "LISTAS" (lo hice sólo para comprobar que todo funcionaba bien), veo como hoja de datos todos los registros que necesitaría pasar al informe...

Al hacer clic en el botón que he añadido en el fomulario "LISTAS", me abre el informe que quiero "INFORMELISTA", pero, si no he seleccionado algo en todas las listas desplegables del formulario "LISTAS", el informe "INFORMELISTA" se queda en blanco. Sólo lo muestra correctametne si selecciono algo en cada una de las listas.

Como hago para que los resgitros del informe coincidan con los que he conseguido en el subformulario???

¿Como le digo algo así como, "si la lista desplegable no se ha seleccionado" mostrar todas las opciones de la lista"???

Estoy utilizando Access 2007!!

Mil gracias!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de manuel

Modificar registros de un informe mediante formulario

Publicado por manuel (41 intervenciones) el 20/09/2014 12:32:59
Hola, hubiera estado bien que hubieses subido la BD para echar un ojo y ver claramente cual es tu problema...

Pero o mal no te entiendo, o simplemente lo que tienes que hacer es que en la consulta sobre la que hagas el informe, pues pongas como parámetros los valores del formulario por los que quieres filtrar el informe. Pero no es la única opción.

Otra opción es que si llamas al informe con una macro, pues la macro AbrirInforme te permite incluir filtros de los datos del informe, concretamente en 2 campos distintos:

-con el filtro y ahí establecer la consulta adecuada

-en el campo WHERE usando la formula: [nombredecampo] = Formularios![nombredeformulario]![nombrecontrol en el formulario]

Otra opción vía VBA: pues con el método OpenReport del Objeto DoCmd

Y hay más... aunque al final estás haciendo casi lo mismo en todas, pero de distintas formas, dependiendo de tu nivel, etc. Y si eres autodidacta, pues las primeras veces vete a lo simple, en la propia consulta del informe, en donde enlazas con los campos que vayan a filtrar los resultados en el formulario y listo... o usando el macro. Y ya cuando tengas más experiencias, pues dependiendo del caso, pues usas lo más conveniente en ese momento.

Espero haberte servido de ayuda, hasta luego
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Modificar registros de un informe mediante formulario

Publicado por Michun (4 intervenciones) el 20/09/2014 19:12:48
Gracias Manuel por tu contestación!!

Te voy a contar un poco más concretamente, a ver si así puedes tú también concretarme la respuesta...

De momento, tengo (espero no marearte con demasiadas obviedades):

CONSULTA con todos los registros entre los que posteriormente se harán las selecciones.
FORMULARIO con 4 listas desplegables para tratar de "filtrar" la consulta en cuestión (SelectorCURSO, SelectorPROFESOR, SelectorSEMINARIO, SelectorGRUPO). Cada una de las listas muestra sus opciones en función de la selección de la lista previa. Además contiene un SUBFORMULARIO en el que SÍ consigo los listados que necesito.
INFORME donde debería mostrarse el resultado de la consulta una vez filtrada.



FORMULARIO:

Cada una de las listas (SelectorCURSO, SelectorPROFESOR, SelectorSEMINARIO, SelectorGRUPO) tiene:
1. Código en el campo "Después de actualizar" :
a) Form![nombreSUBFORMULARIO].Form.RecordSource = "Select * from CONSULTA where [campo de la CONSULTA]=[Lista desplegable del FORMULARIO] AND... añadiendo todos los campos que deben tener en común "
b) Me.[Nombre de la LISTA] = "" para cada una de las siguientes listas que hace que se queden en blanco al seleccionar la anterior.

2. Código en el campo "al recibir enfoque" Me.[NombreLista].RowSource = "SELECT... de una tabla según los valores seleccionados en la lista previa" para preparar las opciones que podrán seleccionarse en esa lista.

El botón de apertura del INFORME: Con un macro "al hacer click" que simplemente abre el INFORME.

Con todo esto, el FORMULARIO, funciona como yo espero, las listas se actualizan bien, me deja elegir lo que yo pretendo, etc. Incluso consigo en el SUBFORMULARIO que está en vista Hoja de datos, todos los registros que pretendo que aparezcan en el INFORME.




INFORME:
Ya está diseñado, con su consulta "Origen del Registro" y todo... Si no pongo Criterios en la consulta del INFORME, me muestra por supuesto todos los listados, de todos los cursos, con todos los profesores, todos los seminarios y todos los grupos, ordenados y agrupados como yo pretendo.

Si pongo como criterio en el campo CURSO del INFORME esto: [FORMULARIO].[SelectorCURSO] al abrirse el INFORME, me filtra los datos y me muestra las listas sólo del año que he elegido en el formulario. (como debería hacer si sólo se seleccionase esa lista en el FORMULARIO)

El problema está cuando añado un criterio similar para los campos PROFESOR, SEMINARIO o GRUPO. Si en el FORMULARIO elijo algo en la lista para la que he puesto el criterio en el INFORME todo funciona estupendamente.

El PROBLEMA está cuando dejo una lista sin seleccionar.
Yo pretendo que no seleccionar en una de las listas (y por tanto las siguientes) en el FORMULARIO signifique "mostrar todas las opciones de la lista" en el INFORME.

SOLUCIÓN:
Después de mucho pensar, yo creo que lo más fácil, sería poder filtrar la CONSULTA de la misma forma que se me filtra el SUBFORMULARIO... Cada vez que se selecciona en una lista desplegable se van filtrando los registros del SUBFORMULARIO...
Pero no sé como hacerlo para la CONSULTA. ¿¿Se puede hacer un Consultas.[CONSULTA].Consulta.RecorSource o algo así al actualizar las listas desplegables del formulario, y que una vez que tienes la consulta modificada, el INFORME, simplemente muestre los datos de la SONSULTA previamente modificada por el FORMULARIO???

O lo que sería más fácil aún... Se podría decirle al INFORME, "al abrirte coge los datos que aparecen en el SUBFORMULARIO" o algo así???

En fin, espero haberte concretado, y no haberla liado más!!

MIL GRACIAS POR TU AYUDA!!!

Por cierto, en cada una de sus tablas, los campos son:
CURSO Tipo de datos: autonumérico (1, 2, 3, 4...)
PROFESOR Tipo de datos: Texto (un numero de DNI)
SEMINARIO Tipo de datos: Texto (compueso por un codigo de hasta tres letras)
GRUPO: Tipo de datos: Número (1, 2, 3, 4... En principio muy raramente podría superar el 10)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar