Interesting points, I had thought an unconditional rs.MoveLast would error if the recordset is empty.
Debugging shows its not empty and the loop is executing. Should it populate the table as it's written?
The recordsource is "Select Performer, Title, Track, Comp from Table9 where Cat= " &...