When I tried the formula, I kept getting a compile error (in VBA). The last IIF() was missing the "FalsePart" if the function.
This is what finally worked:
Code:
= IIf([pH1Demerits] > [pH2Demerits] And [pH1Demerits] > [pH3Demerits] And [pH1Demerits] > [pH4Demerits] And [pH1Demerits] > [pH5Demerits], [pH1Demerits], IIf([pH2Demerits] > [pH1Demerits] And [pH2Demerits] > [pH3Demerits] And [pH2Demerits] > [pH4Demerits] And [pH2Demerits] > [pH5Demerits], [pH2Demerits], IIf([pH3Demerits] > [pH1Demerits] And [pH3Demerits] > [pH2Demerits] And [pH3Demerits] > [pH4Demerits] And [pH3Demerits] > [pH5Demerits], [pH3Demerits], IIf([pH4Demerits] > [pH1Demerits] And [pH4Demerits] > [pH2Demerits] And [pH4Demerits] > [pH3Demerits] And [pH4Demerits] > [pH5Demerits], [pH4Demerits], IIf([pH5Demerits] > [pH1Demerits] And [pH5Demerits] > [pH2Demerits] And [pH5Demerits] > [pH3Demerits] And [pH5Demerits] > [pH4Demerits], [pH5Demerits], 1111)))))
I also wrote a UDF: (order of the arguments doesn't matter)
Code:
Public Function MaxDemerit(p1 As Integer, p2 As Integer, p3 As Integer, p4 As Integer, p5 As Integer) As Integer
Dim MaxValue As Integer
MaxValue = 0
If p1 > MaxValue Then
MaxValue = p1
End If
If p2 > MaxValue Then
MaxValue = p2
End If
If p3 > MaxValue Then
MaxValue = p3
End If
If p4 > MaxValue Then
MaxValue = p4
End If
If p5 > MaxValue Then
MaxValue = p5
End If
MaxDemerit = MaxValue
End Function
To call it, use:
for a textbox on a form:
Code:
= MaxDemerit(pH1Demerits, pH2Demerits, pH3Demerits, pH4Demerits, pH5Demerits)
in a query:
Code:
Fieldsummary: MaxDemerit(pH1Demerits, pH2Demerits, pH3Demerits, pH4Demerits, pH5Demerits)