You seem to have 3 query fields thus you could write a function in a standard module and pass all 3 to it and return the result in a calculated field in that query. The calculated field could be
Res:Result(fld1,fld2,fld3) where fld1 etc. are the query field names, and the function could look like
Code:
Public Function Result(db1 As Double, dbl2 As Double, dbl3 As Double) As String
If t1 = 0 And p1 = 0 And h1 = 0 Then Result = "negative"
If t1 > 0 And p1 > 0 And h1 > 0 Then Result = "positive"
If t1 = 12.3 Or p1 = 0 Or h1 > 23.1 And test = 1 Then Result = "Repeat"
If t1 = 0 Or p1 = 15.6 Or h1 > 20.1 And test = 2 Then Result "invalid"
End Function
That's just a rudimentary approach - it contains no error handler and that was written with the assumption that your values are numbers and that there are no null values or empty strings in any records of those 3 fields. I can't see where you ever said exactly what you want as the end result. That code will only calculate the result, which you could view in a form if that's what you want. What it won't do is update your table if that's the end goal.
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.