Some limits which can affect your choices!
Max database size for MS Access table (Office 365 or Access 2019) - 2 GB;
Max number of fields for MS Access table (Office 365 or Access 2019) - 255;
Max number of tables in query for MS Access (Office 365 or Access 2019) - 32;
Max number of joins in query for MS Access (Office 365 or Access 2019) - 16;
Max number of characters in query statement for MS Access (Office 365 or Access 2019) - 64000 (32750 when query serves as Recordsource or Rowsource);
Max database size for SQL Server - 2524272 terabytes (this was a surprise for me!);
Max number of fields for SQL Server (regular) table - 1024;
Max number of tables in query for SQL Server - limited only by available resources;
So some of your tables look way off for MS Access, and considering, that those numbers are maximums which can be affected through various limitations, I don't see this working in way you re trying now in SQL Server too.
It looks like moving back-end of your data to SQL Server is a must! And then you have to change a lot jet.
To give some material to think about, an idea:
I don't know exactly, for what those 75 parameters for every model are read daily into tblModelData, but when you move back-end into SQL Server DB, you can write a procedure, which reads this data in. And you can write a Job, which at certain time runs this procedure automatically. You even don't need to save those parameters to table - you read them into variables, do all needed calculations using those variables, and then save results into table. The procedure will be roughly like
Code:
...
SET @today = select convert(date, getdate())
--
SELECT @modelid = MIN(ModelID) FROM dbo.tblModels
WHILE @modelid Is Not Null
Begin
-- Reading in 75 parameters for model with ModelID = @modelid and saving them to variables, e.g. @param01, @param02, ..., @param75
-- Calculating and storing in variable(s) some value(s) based on 75 parameters, e.g. @value01 = SomeExpression(@param01, ..., @param75), @value02 = ...
-- Saving calculated variables into some table(s), e.g. INSERT INTO someTable (TradeDate, ModelID, value01, value02, ...) VALUES (@today, @modelid, @value1, @value2, ...)
SELECT @modelid = MIN(ModelID) FROM dbo.tblModels WHERE ModelID > @modelid
End