Formulario con una tabla que vincula otras tablas

Utilizo Access 2010, y manejo cuando no hay más remedio algo de código VBA.

Tengo una primera tabla que describe unos lotes, compuesta por un código de lote y una descripción del lote. También una segunda tabla que contiene datos de productos que se incluyen en los lotes, incluyendo código de producto, y otros datos adicionales.

He creado una tercera tabla de vínculos con los datos código de lote y código de producto, en la que para cada código de lote hay tantos productos como contiene (o quiero que contenga) el lote.

Lo que quiero es mostrar en un formulario continuo (o una solución equivalente) en el que vea todos los códigos de lote con su descripción, y pueda añadir o quitar vínculos a los productos (campos de la segunda tabla). Hasta ahí no hay problema. Utilizondo un combo en el que obtengo el código de producto los datos de la tabla de productos, creándose el registro en la tabla de vínculos.

Lo que no veo es la forma de que quede visible o pueda ver la descripción del producto. Si en la selección de campos en origen de datos del subformulario (SELECT ...) incluyo los correspondientes a la tabla de productos, no me deja añadir ni modificar, si no lo incluyo no los veo. Si no los incluyo, no puedo después hacer referencia a ellos.

¿Puedo crear un campo "independiente" en el que vea los datos del producto aunque no estén esos datos en la cláusula SELECT? ¿Cómo se hace?

Access no me permite que un formulario continuo tenga subformularios. ¿Hay forma de hacerlo, por ejemplo mediante código? ¿Cómo?

1 Respuesta

Respuesta
2

Vamos por partes

1º No veo la necesidad de la tercera tabla. Si tu tienes, por ejemplo, tabla Lotes con IdLote, Lote y descripción y una tabla Productos con idProducto, Idlote, Producto y Descripción, y ambas relacionadas uno a varios por Idlote( no hace falta nada de integridad referencial ni zarandajas), con eso puedes hacer lo que quieras.

2º Como lo normal es que un lote tenga varios productos, si haces un formulario continuo te va a repetir lote y descripción tantas veces como registros haya de productos de ese lote, Opino que es mejor hacer un formulario y subformulario. Así tendrás como formulario único UN lote y como subformulario continuo VARIOS productos, y puedes eliminar, editar, modificar los registros como te de la gana.

3º Como no entendí absolutamente nada el párrafo de " Lo que no veo es la forma..." sólo puedo decirte que si desde el formulario quisieras modificar algo del subformulario podrías poner algo así como

Docmd.runsql"update productos set producto=......where  idlote=" & me.idlote & ""

En el caso de que desde el subformulario, por ejemplo quisieras que al poner un idproducto te autorrellenara el campo Poducto

producto=dlookup("producto","Productos","idproducto=" & me.idproducto & "")

Gracias Icue. Eso sería lo ideal, pero no me resuelve el problema.

El lote y el producto son cosas independientes, sin ningún vínculo entre sí, sin ningún campo común. El vínculo lo establezco en un registro (la tercera tabla) "agrupaciones", con los campos IdLote, IdProducto, en el que un determinado lote puede tener tantos productos como desee, y un determinado producto puede estar en tantos lotes como sea necesario.

Si incluyo el código de lote en el producto, tengo que repetir los registros de producto para cada lote. Para evitar eso he creado la tabla intermedia, de las agrupaciones.

El problema lo tengo para gestionar eso en un formulario. En el formulario tengo el código de lote y su descripción. En un primer subformulario (vista formulario continuo) visualizo y agrego o suprimo los códigos de producto para ese lote, por lo que para cada registro de lote veo tantos vínculos a producto como tenga ese lote (permitiendo añadir y suprimir vínculos). Al elegirlos muestro los datos necesarios (nombre, fecha, precio, peso, ...). y una vez elegido queda el registro ya vinculado entre la primera y la segunda tabla.

Así, al mostrar los datos del lote, veo su descripción, y en continuo los registros de producto vinculados. Lo que no puedo ver es el detalle de esos registros de productos vinculados, en formato tabla o en formato formulario continuo. Es decir, lo que quiero es que en el subformulario vea tanto los códigos de producto como los datos correspondientes de la tabla de productos. Si lo añado en forma de un segundo subformulario  en el primer subformulario (en el que muestre para cada código de producto vinculado los datos de detalle obtenidos de la tabla de productos) no me deja que sea continuo, y si no es continuo no me vale. Si lo referencio a una consulta que vincule los códigos de producto de la tabla de agrupaciones con la tabla de productos, no me permite añadir ni suprimir elementos en la agrupación.

No sé si ahora ha quedado más claro.

Saludos

Vamos a hacer una cosa, si te parece bien. Si quieres, repito si quieres mándame un mensaje( no mandes base ni nada) a [email protected] y te mando un ejemplo y sobre él hablamos. Si lo haces, en el asunto del mensaje pon tu alias Marcelo Sanz ya que si no sé quien me escribe ni los abro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas