Access - Filtro en Formulario

   
Vista:

Filtro en Formulario

Publicado por camatace (5 intervenciones) el 16/09/2008 00:19:26
Yo trabajo en una constructora, me llegan presupuestos desde las Obras (Tabla Presupuestos) donde tengo los campos: id_presupuesto;NInterno;Empresa, fecha.
Cada presupuesto tiene varios tipos de trabajos (Tabla detalle presupuesto) donde tengo los campos: id_detalle; id_presupuesto; producto; cantidad; valor.
con esto yo genero un contrato y otros trabajos.
luego necesito poder ingresar Estados de pago sobre estos presupuestos, para ello cree (Tabla Estado de Pago) con los campos: id_estado pago; id_presupuesto. y un detalle del mismo (Tabla detalle Estado Pago) con los campos: id_detalleestado pago; id_estado pago; producto; monto (a cancelar).- el problema que tengo es que en este ultimo "Producto" de la tabla "Detalle estado de pago" me muestra todos los productos que yo tenga creados, sin filtrarme por el id_presupuesto. si tengo 10 presupuesto cada uno con 10 productos en vez de mostrarme los 10 que le estoy indicando al darle el numero de id_presupuesto me muestra 100.- yo podria trabajar con la planilla asi, el problema es que la setoy diseñando para una persona que no maneja bien access, ni siquiera el computador en realidad.
El formulario esta basado en la tabla Estado de Pago con un Subformulario basado en Detalle estado de pago, vinculados por id_presupuesto y id_estado pago.
Quiero que en el subformulario me deje ingresar los 10 productos de el presupuesto indicado en el Formulario estado de pago.
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

RE:Filtro en Formulario

Publicado por Angeles (2 intervenciones) el 16/09/2008 14:56:59
Si he entendido bien tienes las siguientes relaciones:

PRESUPUESTOS.ID_PRESUPUESTO --------> DETALLE PRESUPUESTO. ID_PRESUPUESTO (Uno a varios)

PRESUPUESTOS.ID_PRESUPUESTO --------> ESTADO DE PAGO.ID_PRESUPUESTO (Uno a uno)

ESTADO DE PAGO.ID_ESTADO -----> DETALLES ESTADO DE PAGO.ID_ESTADO
(Uno a varios)

El campo PRODUCTO lo sacas de DETALLE PRESUPUESTO entonces ¿para que quiere el campo repetido en DETALLES ESTADO DE PAGO? Creo que lo que te pasa es que estás sacando todos los PRODUCTO con el mismo estado de pago.

Un saludo, Angeles
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

RE:Filtro en Formulario

Publicado por camatace (5 intervenciones) el 16/09/2008 15:09:20
Lo que pasa es que cuando llenen el estado de pago (la persona que ocupara la Base de datos) habra pasado casi un mes o mas, y no quiero que empiecen a mesclar productos de un presupuesto a otro. es por eso que quiero que al colocar un numero de presupuesto solo les de la opcion de ingresar solo los productos de ese presupuesto.
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

RE:Filtro en Formulario

Publicado por Angeles (1 intervención) el 16/09/2008 17:00:16
Por lo que yo entiendo la tabla "madre" es la de PRESUPUESTOS, con una clave única que es el ID_PRESUPUESTO, después tienes una tabla de los detalles, que pueden ser varias lineas con distintos productos por cada presupuesto ¿correcto?. Luego quieres vincular otra tabla que te dé el estado de pago, este estado de pago ¿es del presupuesto o de los productos?, porque la forma de actuar sería bastante distinta.
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

RE:Filtro en Formulario

Publicado por camatace (5 intervenciones) el 16/09/2008 17:13:32
La tabla madre es la de presupuesto como tu indicas y si en la tabla detalles van todos los productos de ese presupuesto. Correcto!
los estados de pago van en funcion a cada producto (estos productos en realidad son trabajos, por ejemplo pintar una cerca, yo le pago segun el nivel de avance de ese trabajo, 25%, 50% o 100 % si termino), lo que no quiero es que en el lstado desplegable de los productos me aparescan miles, solamente los de el contratista o presupuesto especifico.
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

RE:Filtro en Formulario

Publicado por Angeles (22 intervenciones) el 16/09/2008 17:57:41
Lo primero que tienes que tener en cuenta cuando vinculas tablas, es que en una de ellas el registro sea único.

Como en este caso en la tabla PRESUPUESTOS el registro único es el ID_PRESUPUESTO yo vincularía este campo con el ID_presupuesto de la tabla de detalles así nos aseguramos que en la tabla de detalles nos saldrá solo el presupuesto pedido, con todas sus lineas. Supongo que en las lineas de este presupuesto el registro producto será único, entonces tienes que vincular esta tabla detalles con la de estado de pago con los dos campos, id_presupuesto y producto. Esto, repito, solo funcionará si el producto es único para cada presupuesto.

Esta seria la SQL

SELECT presupuestos.id_presupuesto, detalles.producto, pagos.pago
FROM (presupuestos INNER JOIN detalles ON presupuestos.id_presupuesto = detalles.id_presupuesto) INNER JOIN pagos ON (detalles.id_presupuesto = pagos.id_presupuesto) AND (detalles.producto = pagos.producto)
ORDER BY presupuestos.id_presupuesto, detalles.producto;
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

RE:Filtro en Formulario

Publicado por camatace (5 intervenciones) el 16/09/2008 18:21:12
El Producto si es unico para cada presupuesto.
Cuando dices Vincular la Tabla Detalles Presupuesto con id_presupuesto y Producto. a la tabla Estado de Pago, esta Tabla tiene 3 campos (id_estadopago, id_presupuesto y Tipo Pago) y la Tabla Detalle Estado de Pago tiene (id_detalleEstado, id_estadopago, producto, porcentaje avence). con cual la vinculo cada uno con el que corresponde independiente que sean dos tablas o tengo que modificar las tablas.
La SQL, es para el Subformulario de Detalle estado de pago?
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

RE:Filtro en Formulario

Publicado por Angeles (22 intervenciones) el 16/09/2008 19:25:40
Lo que te quiero decir es que, siempre que vincules tablas tienes que buscar en una de ellas una clave única, ya sea un solo campo o la suma de varios. Lo que hace access es que se situa en el primer registro de la primera tabla y busca todos los registros coincidentes de la segunda, ya sea uno, dos o doscientos mil, después se va al segundo registro de la primera tabla y hace lo mismo, si ese segundo registro es igual al primero encontraría las mismas coincidencias con lo que duplicaría todos los registro encontrados por el primero. No se porque no has metido el campo producto en la tabla Estado de Pago, ya que según he entendido el id_estadopago va relacionado con el producto.

En la tabla Detalles Presupuesto la clave sería ID_PRESUPUESTO+PRODUCTO, con lo cual tendrías que vincular, a la vez, estos dos campos para acotar perfectamente el vínculo.

Si me mandas a mi correo una Base de Datos con las tablas y algún registro te podría ayudar mejor.

Saludos, Angeles
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

RE:Filtro en Formulario

Publicado por camatace (5 intervenciones) el 16/09/2008 19:43:56
te la acabo de enviar por correo.
gracias
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