Necesito evitar que un campo (precio) al ser editado cambie en los registros anteriores

Estoy haciendo una base de datos para una cafetería y me ha surgido un problema.

Tengo un formulario llamado "producto" que permite editar la información de los productos, entre estos, el precio.

Mientras hacía pruebas de esta cualidad, noté que si hoy decido cambiar el precio de un producto, este precio cambia también en los registros de venta que he realizado en fechas anteriores.

Me gustaría saber como puedo evitar que esto suceda. Dedo destacar que en las relaciones de las tablas no tengo marcada la opción de actualización en cascada, así que no entiendo porque esto sucede.

También quiero explicar como llevo la información de los productos a la venta. He hecho una consulta llamada subDETV que reúne información de la tabla detalle venta y producto. Con esta consulta cree el subformulario que aparece en el formulario de registro de venta. En este subformulario puedo ingresar el código de producto (con un lector de código de barra) y el sistema automáticamente ingresa el nombre del producto, precio y calcula el subtotal. La cantidad es ingresada por el usuario.

2 Respuestas

Respuesta
1

En el subformulario Detalleventa, en el evento Después de actualizar de las propiedades del control Idproducto, pon el cursor en el rectángulo en blanco y te aparecerá a su derecha un botón con tres puntos(...) Haz clic en él y en la ventana que se abra selecciona Generador de código. Se abrirá la ventana del editor de VB con

Private Sub.....

End sub

Pues entre ellos puedes poner

Precio=dlookup("precio","productos","idproducto=" & me.idproducto & "")

O sea, búscame en la tabla Productos el valor del campo Precio en aquel registro en que el valor del campo Idproducto sea igual al que acabo de elegir en el subformulario. Como en la imagen cuando selecciono un producto

Al seleccionar el Te

Pero es cierto que en la tabla DetalleVenta tiene que haber un campo Precio, no el de la tabla Productos.

Respuesta

No puede tomar el precio de la tabla "PRODUCTO", es decir, el campo "PRECIO_V" de ir también en la tabla "DETALLEVENTAS" y de ésta tomar el valor par informar el registro de la venta. De lo contrario cada vez que cambie el valor de venta al crear la consulta va a tomar este nuevo precio. Resumiendo, cuando haga la consulta para informar el registro de la venta debe tomar el campo "PRECIO_V" de la tabla "DETALLEVENTAS".

Soy nueva en access, entonces no entiendo muy bien como podría pasar los datos de los precios de la tabla de Producto a la tabla de DetalleVentas sin tener que estos ser ingresados , ya que la idea es que esta información la traiga el sistema al poner el código del producto, para evitar errores en los precios.

Adjunto foto de las fuentes de información del subformulario SubDETV, que trae los nombres y precios de los productos

.

Para no entrar en improvisaciones si puede envíeme su base datos a [email protected] y le hago la modificación, lógicamente se la explico. Favor en el asunto anotar la consulta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas