Pregunta sobre relaciones en Access con Integridad

Buenas, tengo las siguientes tablas (pongo las que son importantes para los cálculos)

---------------------------------

Tabla "Costo Gramo"

[Id_Costo]

[Tipo_Metal]

[Costo_Gramo]

---------------------------------

Tabla "Producto"

[Id_Producto]

[Descripción]

[Metal] --> es un combobox que quita sus datos de la tabla "Costo Gramo"

[Peso]

[Tipo_Venta] --> con 2 opciones únicas: Unitario y Gramo

[Precio Unitario]

[Precio_Unitario]

[Precio_Venta] --> es un campo calculado con un IF que detallo a continuación

---------------------------------


Si [Tipo_Venta] = [Unitario]

[Precio_Venta= [Precio_Unitario] (o sea que el precio es fijo y no cambiará nunca

Si [Tipo_venta] = [Gramo]

[Precio_Venta]= [Metal]*[Peso] (o sea que el precio cambia de acuerdo al coste de metal que varía con el tiempo)

El problema es el siguiente, si utilizo el calculo directo al crear el registro calcula todo correctamente pero al actualizar la tabla "Costo Gramo" los valores del campo [Metal] de la tabla producto no registran los cambios, lo cual hace que mantengan los precios puestos antes de la actualización.

La forma en que quiero que funcione es la siguiente: al crear un nuevo producto selecciono los datos y el tipo de metal (este se sacará de un combobox que leerá los tipos de metal y sus cotizaciones de la tabla "Costo Gramo". Y en un futuro, cuando suban o bajen los precios (o se agregue un nuevo metal a la lista) entonces se podrá abrir la tabla "Costo Gramo" para actualizar los precios y la tabla producto actualizará en el momento los costos y calculará todo de vuelta (en caso de que se agreguen nuevos metales entonces deberán aparecer en la lista cuando agreguemos nuevos productos o al actualizar los ya creados). Hasta ahora no pude hacer que funcione con algo que no sea utilizar [Costo_Gramo] como clave única y relacionarla con el campo [Metal] de la otra tabla en uno a varios con integridad referencial y actualización en cascada (El campo [Metal] utiliza como valor de columna el campo [Costo_gramo]), pero el problema de eso es que al ser [Costo_Gramo] clave única no pueden haber valores repetidos, cosa que puede ocurrir en algunos metales

Gracias por la ayuda y si necesitas mas datos o una mejor explicación no dudes en decírmelo :)

Añade tu respuesta

Haz clic para o