I think your code should work too, the way it is.
Try setting the recordset to forward only, maybe that will help
Set rs1 = CurrentDb.OpenRecordset(query1, dbOpenForwardOnly)
That being besides the point, it would be more efficient to do an insert select.
Insert into YourTable (col1, col2) (Select col1, col2 From otherTable)