I can offer you 2 functions...
The first one after adaption can calculate max or min of all fields in a query:

Function min_in_columns(SQL, Start_col, End_col) As Double

Dim mydb As Database

Dim myr As Recordset

Dim i

Dim min_value


Set mydb = CurrentDb()

Set myr = mydb.OpenRecordset(SQL)


min_value = 0


myr.MoveFirst

For i = Start_col To End_col

If min_value > myr(i) Then

min_value = myr(i)

End If

Next i

myr.Close

mydb.Close


min_in_columns = min_value

End Function

If you want to use it in a query based on table Data with PK ID so you have to type as column in your query:
Min:min_in_columns("SELECT * FROM DATA WHERE ID="+str(ID)+";", 5, 10)
This will give you the minimum from the columns between 6 and 11
And this function is a bit more simple for avoiding the multiple IIF() only:

Function MinNumb(A, b)

If A < b Then

MinNumb = A

Else

MinNumb = b

End If

End Function


So for 3 fields it should be:
Min: MinNumb(C, MinNumb(A, b))