Ah, then you should definitely not store it, because if you add, delete or modify any other record then it will invalidate all the stored values.
This should work:
SELECT Partnumber, support_cost,
support_cost / DSum( "support_cost", "YourTable" ) as support_per,
DCount( "*", "YourTable", "support_cost>" & support_cost ) + 1 as support_rank
from YourTable order by support_cost desc;
In the quert design view, you can set the Format property of the field to Percent.
--
Graham