So would you rather calculations are done in a Query than in a Form? Better database structure?
I would tent to go for a Query where there are a lot of records, as I would have some kind of filter on the data (i.e. only data for a certain month), as apposed to a Form that contains all records from a Table.
It depends on what I'm doing and the kind of calculation I'm performing.
* If I want to aggregate the field at some point, then I will do it in the query.
* If I want to use the query on several reports or forms and not all of them require the calculated field, I will do it in the form or report that need it.
A form will perform the calculations on the records that are currently visible or fit in the sreen so if the form is set to Single then it will only calculate on the currently viewed record. If it's a datasheet or continuous form, it will calculate on the visible records. Although, there are times when controls with calculated values causes a form to flicker especially if it contains a tab control.
A query will perform the calculations on a good number of records. So if you have 1000 records and you can see 30 records when you open the query in datasheet view, the calculations won't be performed on just the 30 records, it will do it on
probably at least 50% of your records. Definitely more than the 30 that are visible. I'm not sure the exact numbers or percentage.
So these are the things to bear in mind.