I think we have to return to boblarson's original statement. ANY FIELD that you can compute "on the fly" in a query should never be updated by any type of computation in a update query. I only see three weights in your table that need storing... A, B, and the weight you divide by C. NO OTHER WEIGHT SHOULD BE STORED.
One thing you should always remember is that for most forms and reports, a query is the better recordsource if any computations are involved anyway.
Another thing to consider is whether these fields are time variant or time invariant. Because if they are time variant, you should not update ANYTHING. You should create a newer record - AND you should consider that your structure is incorrect.
You used the word "progress." That is why I hit upon the "time variation" issue. If you are looking at progress, you need something like
partnumber - part of compound prime key
sampledate - other part of compound prime key
weight
And you need a lot of those samples to show you the history. (This is for purposes of discussion only.) This table should be a child of the table that lists partnumbers and descriptions of parts.
Then, when you want to show progress by time, you can use this sample table grouped by part number and ordered by sample date to learn what you wanted to know.
I hope you can excuse us for having trouble understanding what you want to do so that we can advise you better. Your description is not entirely clear and it at least prima facie appears that you might have a non-normalized table in-hand. We have trouble enough working with normalized data sometimes. Working with improperly formed tables is that much harder.