Consulta Sobre Query SQL y DBLookUpListBox en Paradox
Estoy ante el siguiente problema. Necesito mediate un DBLookUpListBox mostrar los proveedores asignados a un articulo en especial tengo 3 tablas de Paradox que estan en un directorio. Los paths estan todos correctos.
Articulos.DB - Proveedores.DB - ArtXProv.DB (en esta ultima, estan las Primary Key de cada una de las tablas anteriores, es decir es la tabla que x cada tupla representa un articulo y un proveedor (Nro_Art, Nro_Proveed)) En el form tengo para cada tabla su correspondiente Data Source y una Query llamada Q_Nom_Proveedores con su Data Source En ella tengo en el campo SQL la siguiente SQL: Supuestamente esto devuelve para un valor de Fk_art los proveedores asignados a ese Articulo. No? Corrijanme si me equivoco. En params le Puse que Fk_Art es Integer con value 1 o sea esta todo. Ahora en el DBLookUpListBox esta seteado asi: DataField = Nro_Proveed DataSource = Dsc_Q_Nom_Proveed KeyField = Nro_Proveed ListField = Nombre_Proveed ListSource = Dsc_Proveedores Pasa que el DBLookUpListBox me muestra todos los proveedores, y no los proveedores asignados al articulo en ese momento. ¿Que puede estar fallando? :confused: Nota: Aclaro que fk_art esta declarado en PUBLIC y que su valor cambia cada vez que elijo dentro del form un articulo desde la tabla Articulos.DB donde tomo el valor del Nro_Art |
A ver...
los valores del DBLookUpComboBox DataSource := donde se cambiaran los datos DataFields := campos q se variaran ListSource := desde donde se rellenan la list (debe ser diferente del anterior o sino habria referencia circular) ListFields := campos a representar KeyField := el campo que realmente se pasara de una a otra. creo q tienes las dos sources intercambiadas |
Cita:
Mas datos para que se entienda: Esta es la estructura de la tabla ArtXProv.db con algunas tuplas (registros) +---------+-------------+ ¡.Nro_Art...¡ Nro_Proveed.¡ +---------+-------------+ ¡ ...........1¡..................1¡ ¡ ...........1¡..................3¡ ¡ ...........2¡..................2¡ +---------+-------------+ La SQL de la Query Q_Nom_Proveedores debe devolver, (por ejemplo para fk_art = 1): +--------------+ ¡..Nro_Proveed. ¡ +--------------+ ¡...................1¡ ¡...................3¡ +--------------+ Entonces Si por ejemplo Nom_Proveedores(el campo a mostrar en el LookUpListBox de la BD Proveedores.db) es para 1: Nike, 2: Adidas; 3: Topper el DBLookUpListBox, Deberia mostrar en panatalla SOLAMENTE +--------------+ ¡..NIKE.............¡ ¡..TOPPER.........¡ +--------------+ Pero Muestra: +--------------+ ¡..NIKE.............¡ ¡..ADIDAS.........¡ ¡..TOPPER.........¡ +--------------+ Ese es mi problema;) Nota: fk_art es la que se compara en la setencia SQL con Nro_Art Q_Nom_Proveedores tiene como DataSource a ArtXProv.db O sea que no hay referencia circular |
Entonces la sentencia SQL de filtro la debes aplicar a la tabla de DSC_proveedores, no? estos son los que te apareceran en la lista
|
Yo lo que no entiendo es de donde sale:
ListField = Nombre_Proveed Yo al menos, lo resolvería así: . Esa es la consulta del lookupList.ListSource, automáticamente obtienes el código y nombre del proveedor para mostrar. Supongo que ahora mismo te aparece el "ADIDAS" porque se necesitaría una relación maestra-detalle que no está formada, pero vamos, que creo más simple la consulta que indico. Saludos |
Gracias Lepe, no habia probado hacer un JOIN. Ahora funciona
|
La franja horaria es GMT +2. Ahora son las 11:52:49. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi