You can create an in memory recordset and it will go away when it is closed and set to nothing. You can paste this function into your standard module and experiment.
Public Function FabricatedRS()
Dim rs As ADODB.Recordset
Dim varArray As Variant
Set rs = New ADODB.Recordset
With rs.Fields
.Append "myid", adInteger
.Append "mydesc", adVarChar, 50, adFldIsNullable
End With
varArray = Array("myid", "mydesc"
With rs
.Open
.AddNew varArray, Array(1, "first desc"

.AddNew varArray, Array(2, "second desc"

.AddNew varArray, Array(3, "third desc"

.AddNew varArray, Array(4, "fourth desc"

End With
rs.MoveFirst
While Not rs.EOF
Debug.Print rs!myid; " "; rs!mydesc
rs.MoveNext
Wend
rs.Sort = "myid DESC"
rs.MoveFirst
While Not rs.EOF
Debug.Print rs!myid; " "; rs!mydesc
rs.MoveNext
Wend
rs.Filter = "myid = 3"
rs.MoveFirst
While Not rs.EOF
Debug.Print rs!myid; " "; rs!mydesc
rs.MoveNext
Wend
rs.Filter = adFilterNone
rs.Close
Set rs = Nothing
End Function