This is a quick example of the subform for carrying out the calculations
Thank you very much, Mike. I really appreciate the effort you put into capturing the initial vibe of the solution. There is, however, a problem in the concept. If you wouldn't mind, take a look at the Excel file attached in post #13. In it, the columns used for breaking down the total Kg for the reinforcement steel task are entirely different.
I might not have been clear enough that I want to avoid hardcoding those columns for each breakdown for that very reason, I may have different columns in some tasks. Length, Width, etc., are the most common, but there are some that will differ and I won't be able to break down the quantity with those columns. Sorry about not being clear.
If you calculate a surface area, is that simply length x width. If it's a curious shape, why would they expect you to demonstrate your calculation. If you evaluate it as 83 sq metres, why is that not sufficient?
If it's all too complex for you to model in access, why not just record the totals in access, and attach a workings sheet in excel?
It's not sufficient to just show the number because there will be someone reviewing my work. This person will grab a measuring tape and actually measure each dimension stated in the document.
Why not in Excel? I've been doing it in Excel since the beginning of time, as everyone else, but there are many other parts to this that require the constraints of a relational database and I want to stop migrating data, I want to do my work in one place.
I don't see any table that defines the UOM or the internal use UOM. Perhaps that is what units is supposed to be. It needs to have a row for every possible UOM value. It needs a flag that says this is an internal UOM. Then it needs a column for UseThisUOM. For convenience, even the rows marked with the internal UOM flag should have an ID in the UseThisUOM column so for use in calculations, ALL calculations use the UseThisUOM ID value. In the maintenance form, there will be a combo to select UseThisUOM and it will use a RowSource query that selects from the units table ONLY the rows with the internal UOM flag set to True.
Please refer to post #22, I'm showing the matched unit in the tasks table.