PDA

Ver la Versión Completa : consultas entre varias tablas


Irina
27-05-2003, 19:07:05
Buenas, mi duda es la siguiente:

Tengo 3 tablas, Facturas(primary key N_fac), Presupuestos(pk n_pre, foreign key factura) y Detalles(pk n_pre, fk n_pre)

Quiero que al seleccionar una factura, se seleccionen todos los campos de presupuestos cuya fk sea igual a la factura elegida y a su vez me seleccione todos los campos de detalles cuyas claves coincidan con las claves selecionadas en presupuestos.

Espero haberme explicado bien, y que alguien me entienda.

Gracias por ayudarme.

Irina.

andres1569
27-05-2003, 19:25:10
Hola:

Irina escribió:

Quiero que al seleccionar una factura, se seleccionen todos los campos de presupuestos cuya fk sea igual a la factura elegida ...


Tal como lo planteas aquí no parece que se trate de hacer una consulta que enlace esas tablas sino de crear una relación Maestro-Detalle (por campos querrás decir registros, supongo). Basta con que asignes las propiedades MasterSource de la tabla de Presupuestos al Datasource de Facturas y a la propiedad MasterFields le asignes el índice foráneo a facturas. Con la tabla de detalles haces igual, enlazas el MasterSource al DataSource de presupuestos, y fijas el índice correspondiente, n_pre. Con esto, al navegar por facturas te filtrará los presupuestos relacionados (algo raro me parece), y al navegar por presupuestos te mostrará los detalles correspondientes.

También puedes enlazar consultas por el mismo sistema de Maestro-Detalle. La consulta de presupuestos sería:

SELECT * FROM presupuestos WHERE n_fac = :n1

y los detalles de presupuestos sería:

SELECT * FROM datallespre WHERE n_pre = :n1

Esto hace que la relación maestro-detalle ejecute cada vez la consulta correspondiente y el parámetro :n1 toma cada vez el valor del Dataset maestro.

No sé si es a esto último a lo que te referías.

Un saludo

Irina
27-05-2003, 19:32:23
Gracis por tu ayuda, pero ya he encontrado una solucion mas sencilla

Pero de todas formas gracias por tu interes
Irina.

marcoszorrilla
27-05-2003, 19:58:32
Hola Irina:

Dices que has encontrado una solución más sencilla, no estaría demás que nos dijeras cual es, para saber como lo has resuelto finalmente.

Un Saludo.