Cómo cambiar un precio si que afecte los registros anteriores
Hola Mauricio, el problema es que el costo en la tabla de ventas debe ser un campo distinto al del artículo, es decir, debes tener una tabla Artículos con el Costo y el Precio de Venta.
En la parte de ventas, en la factura, albaran, presupuesto, etc..., debes tener unas tablas de Lineas de Presupuesto, Lineas de Factura, etc.. donde, al poner el código del artículo, estableces el campo Costo y Precio de Venta de esas tablas de Lineas con la información de la tabla Artículos, de esa forma, cuando cambies algo en artículos no lo cambiará en las tablas de líneas de ventas.
Si lo que tienes es un campo de cálculo y no quieres cambiar la estructura (lo que te recomiendo sin lugar a dudas), puedes hacer diferentes campos de costo y precio de venta en la tabla de artículos, y condicionar el cálculo a una fecha:
If ( FechaFactura < Date ( 3;21;2019) ; TuCampoPrecioAntiguo ; TuCampoPrecioNuevo ) o con un CASE
Esta opción aunque más sencilla es mucho peor.
Un saludo.