Eval()evaluated by the Access expression service. And this service does not know about VBA variables, including object variables, such as your recordset rs2.
But I donβt think you need something like Eval()that to get what you want. Use strAttrto refer to this name in the record collection .Fields.
strAttr = "Name"
strResult = rs2.Fields(strAttr).Value