Here is a great question that I get asked all the time. I get it so frequently that I decided to share my answer here with all of you.
Q: Hi Richard. I have just completed your Access 204 tutorial. I found it to be most enjoyable and very helpful. I am working on a database that I had already created before I discovered your valuable service. Can I ask you please to recommend another of your tutorials? My problem this time is I have a products table that contains items and prices. Each client order is set up by means of a form and a subform related to this table. If I amend a price in the products table it affects all my records historically! What have I done wrong?
A: This is a CLASSIC example of why you need a separate table to save historical data like this. It's the same thing with customer info - you pick a customer for an order and you can link back to the customer table to get the address, but what if that customer moves? You look up the order six months from now to find where it was shipped, but the customer has moved and the address changed. You need to store that data in the ORDER table.
For product prices, you need to store the SALE PRICE of the item at the time of the sale in the ORDER DETAILS (line items) table. This way when the price changes in the product table for the future, it doesn't mess up the previous data for all of your orders.
I cover this in my 300-series dealing with designing the Order Entry system. I specifically cover THIS example in Access 302. But in order to benefit the most from these lessons, I would recommend starting with Access 301 so you get all of the background on CORRECTLY building the Order Entry tables (products, orders, line items, etc.)
Hope this helps. Enjoy!