Access - ComboBox que no muestra datos de tabla

 
Vista:

ComboBox que no muestra datos de tabla

Publicado por Rokan (3 intervenciones) el 28/11/2013 13:17:03
Hola, tengo la siguiente duda con el funcionamiento de un combobox en un sub formulario.
Primero voy a mostrar el diseño de tablas y sus relaciones y luego paso a explicar el problema.
Tengo las tablas:
Compras(Campos: nºalbaran-compra, id-proveedor, fecha-compra, ... ; Clave: nºalbaran-compra)
Detalle de Compra (Campos: nºalbaran-compra, id-producto, kilos-compra, precio-compra; Clave: nºalbaran-compra, id-producto)
Ventas (Campos: nºalbaran-venta, id-cliente, fecha-venta, ... ; Clave nºalbaran-venta)
Detalles de Venta ( nºalbaran-venta, id-producto, kilos-venta, precio-venta, ...; Clave: nºalbaran-venta, id-producto)
Productos (id-producto, nombre-producto, ... ; Clave : id-producto)
Proveedores (Campos: id-proveedor, nombre-proveedor, ...; Clave: id-proveedor)
Existencia(Campos: id-producto, nºalbaran-compra, id-proveedor, kilos-existencia; Clave: idproducto, nºalbaran-compra, id-proveedor)
Las relaciones entre las tablas se deducen claramente, porque he usado nombres de campos con el mismo nombre en cada una de las relacionadas.
Para la tabla "Detalles de Venta", para el campo "id-producto", he definido una consulta de búsqueda para que me salga una lista con los nombres de
productos actualmente en existencia, más otros datos de interés que necesito ver en el momento de registrar un detalle de venta:
SELECT Existencia.[id-producto], producto.[nombre-producto], Existencia.[id-proveedor] AS Prov, Existencia.[nºalbaran-compra], Compra.fecha
FROM Compra INNER JOIN (producto INNER JOIN Existencia ON producto.[id-producto] = Existencia.[id-producto]) ON
Compra.[nºalbaran-compra] = Existencia.[nºalbaran-compra]; (no es la típica "SELECT Productos.[id-producto], Productos.[nombre-producto]
FROM Producto ORDER BY nombre-producto;"
Realmente no meto datos directamente por la tabla "Detalles de Venta", sino por un subformulario, en el cual me aparece también un combo que tiene definido como origen de fila la misma consulta de arriba, para rellenar el campo id-producto de la tabla "Detalles Venta". Este combo muestra una lista con los nombres de los productos en existencia, y otros datos, como ya he comentado. Selecciono un producto en Existencia y lo graba sin problemas en la tabla "Detalles de Ventas".
El problema viene cuando borro un registro de existencia en la tabla Existencia (al llegar a ceros kilos de existencia). En este caso en todos los registros del formulario de Ventas, para aquellos detalles de ventas cuyo valor de id-producto coincide con el id-producto del registro eliminado en la tabla Existencia, deja de mostrarse en el cuadro superior del combo, aunque en la tabla "Detalles Venta", aparece grabado el valor de id-producto. Pero en el combo del suformulario Detalles de Ventas, no se ve nada, ni siquiera el código del producto.
Sabeis ¿por qué pasa esto?. He pensado que como la consulta se basa en uniones JOIN, al parecer la tabla existencia actúa como un filtro para que el
combo sólo pueda mostrar los nombres de aquellos productos que aparecen en la tabla Existencia, pero no los nombres de otros productos cuyos id
no aparecen en la tabla Existencia. Podría alguien proponerme una solución, para conseguir que el combo siempre muestre el nombre del producto para el id-producto que se ha grabado en el registro, una vez que en la tabla Existencia se hayan borrado registros que hacen referencia al mismo id-producto.
Muchas 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