Well that was an absolute pain in the ....
For a long time, I was fairly convinced this was all due to corruption.
However, after a lot of trial & error with different code, I changed the recordset code from OpenDynaset to OpenTable - this fixed the errors! No idea why as I've NEVER had to do that before
I then modified the recordset code to allow for unequal column lengths as that didn't seem correct previously
e.g. 61 records = 21.20,20 ; 62 records =21,21,20, 63 records = 21,21,21
Previously the report wouldn't run on certain dates such as 21/03/2019 though data existed. It now works for all dates with data
However the code is less 'neat' than previously.
It should be possible to tidy it up with more effort but I've already spent too long on it
I've replaced the code where you deleted & made the table repeatedly.
Instead the table is emptied & repopulated each time
This should make the database more stable ...but the file size will still increase each time you run your report. You will need to compact occasionally
I also added error handling to that procedure
Tested the report in both Win10 & Win7 - no further issues in either OS as far as I can tell
There are lots of issues elsewhere in the database but I'll leave those to you to fix. Good luck!