Try revised code:
Code:
Function Result(strID As String) As String
Dim rs As DAO.Recordset, x As Integer, strResult As String
Set rs = CurrentDb.OpenRecordset("SELECT * FROM Samples WHERE SampleID = '" & strID & "'")
Result = IIf(IsNumeric(strID), "Negative", "Not Valid")
For x = 1 To rs.Fields.Count - 1
Select Case strID
Case "HS"
If (rs(x) = 0 And rs(x).name <> "RNP_Ct") Or (rs(x) > 0 And rs(x).name = "RNP_Ct") Then
strResult = "Valid"
End If
Case "PC"
If rs(x) > 0 Then
strResult = "Valid"
End If
Case "NTC"
If rs(x) = 0 Then
strResult = "Valid"
End If
Case Else
If (Nz(rs(x), 0) > 0 And rs(x).name <> "RNP_Ct") Then
strResult = strResult & Left(rs(x).name, InStr(rs(x).name, "_") - 1) & ","
End If
End Select
Next
If strResult <> "" Then
If InStr(strResult, ",") > 0 Then
Result = Left(strResult, InStrRev(strResult, ",") - 1)
Else
Result = strResult
End If
End If
End Function