No need to apologise iuphim.
This may be a bit ahead of you at the moment but have a look at it anyway. Do not worry if you do not fully understand it and ask any questions if you like.
See attached database.
Access has standard functions like IIF, DATEADD, FORMAT etc and one can develop ones own functions that one can call in a similar way and which return a value based upon the values passed to the function and logic that one has programmed in. The values passed to a function are called arguments.
There is a function, MetOrNot, that I have put together in the module.
It needs three values passed to it:
DateReceived
Compliance
Days
If you look at the code in the function you may be able to work out what is going on as it is very similar to the way in which the IIF expression that you developed was laid out.
The function is called from the fourth column of the query
MetOrNotMet: MetOrNot([DateReceived],[Compliance],[Days])
and returns a value of "Met" or "Not Met" based upon the values of
[DateReceived], [Compliance] and [Days].
I like this minimization a lot.
My criteria has blown out a bit to be
iff([date received] is null, null,
iif([term]=40 and [days]=1 and [eterm]>=30and [edays]=1, met,
iif([term]=40 and [days]=0 and [eterm]>=30, met,
iif([term]=20 and [days]=1 and [eterm]>=10 and [edays]=1, met,
iif([term]=20 and [days]=0 and [eterm]>=10 , met,
iif([term]=0 and [days]=0 and [eterm]<=1, met,
iif([term]=60 and [days]=1 and [eterm]>=50 and [edays]=1, met, not met))))))))
Is there a way to condense all this?