The big downside to storing calculated data in a table is that you will forever thereafter have to ensure that the calculated values are ALWAYS up-to-date. Users must not be allowed to modify the data in the table without using your custom forms, etc. You also waste a bit of memory.
If you are going to use a calculated field a lot (I define 'a lot' as more than one form or report!), you could create a query from your table(s) that contain AmtDefect and QuantSuply.
In this query, add a calculated field, like:
%Defect: = [Amtdefect] / [QuantSuply]
You might as well format this field as a percent while you are at it.
Now use this query as datasource anywhere you need %Defect.
You could also add the rest of the fields from your original table, and then use the query exclusively where you used to use the table. This is what I tend to do, so long as the query calculations don't add a lot of time overhead to my forms or reports.