It is all in the understanding of the process. Both the Query and the form are the same. When the Query gets the information from the DB record, it has the information available to calculate the necessary fields. It does so as it is preparing the record for output to whatever. When you enter data on a form, the only place that data resides is in being prepared to be written to the DB. The data is available to be manipulated in whatever manner, but at this point only through macro coding. It does not exist in the database. Once you complete the entry and proceed to the next or previous record, a return to that record requires the query to pull that info, which contains the necessary info to calculate the data. Now, the information is displayed on the form.
It should also be noted, if you simply update the current screen data, the new information is simply written to the DB and nothing is returned since the record has not changed. In other words, there was no need to use query to get new information and therefore no calculated data was returned.
As for you putting information in these fields, it is a total waste of time. Whether you put something in or not, the result will be the same. In fact, since they are based upon a calculation, they should be set as display only to the user. No entry should be allowed.
This question is a bit surprising since in a previous question, in one of your comments you stated that you understood this process. Also, the immediate display of the calculated information on a form, using macros, was also presented to you in my answer here.
If this answers your question please click on the (upper left area of answer).