Are the fields you are attempting to evaluate true field values or are they computations that exist in an underlying query?
Tip:
In most instances IIF statements evaluates both the true and false condtions before it makes the decision which path to take. It may be more prudent to write a simple function and use that in stead:
Public Function Test(Advisors As Integer, Rank As Intetger) As Integer
If Advisors < 3 Then
Test = 0
Else
If Rank > (Advisors/3)*2 Then
Test = 3
Else
Test = 0
End If
End Function
Then in your query use
MyTest:Test([Count Advisors],[Q Rank])
Don't forget to save the function in a standard module first.
What is actuially happening is that your calculated field is being processed
First when the underlying query is referenced
Next when evaluating the True statement in the first IIF
Again when evaluating the True statement of the nested IIF
And again when Access decides which part to use. So all this processing is becoming complex for Access to handle.
This may be that at least one result cannot be computated due to a null value. Does your underlying query return a valid value for each side of the equasion? Try using Nz().