You can't and there is a logical reason behind that. When you create a object in an Action than Action's thread owns that object. As soon as the RunAction command exits the thread is destroyed and hence the objects will also not exist. While values can be transferred from one thread to another
Returning object is not possible but you can always declare the object as global and use it. Since you are talking about the recordset, I would suggest executing the query and retrieving values can be made as a generic function rather than a reusable action.