Without spending the time in the database to understand the implementation of that business rule, which I don't have time to do, my opinion on how to know how many and what recordsets to create isn't valid. Presumably the developer knows their business rules.
Here's code to put recordset(s) to excel. For this application, I'd put it in a class, and pass each recordset to it in turn. But then I like to put nearly all my VBA code in classes.
Private Sub ExportRSToExcel()
Dim rs As DAO.Recordset
Dim oXL As Object
Dim oXLWB As Object
Dim oXLWS As Object
Dim sSQL As String
sSQL = "SELECT * FROM Athlete"
Set rs = CurrentDb.OpenRecordset(sSQL, dbOpenDynaset, [dbSeeChanges])
Set oXL = CreateObject("Excel.Application")
Set oXLWB = oXL.Workbooks.Add
oXL.Visible = True
Set oXLWS = oXLWB.WorkSheets("Sheet1")
oXLWS.Range("A1").Select
'optional labels
For Each fld In rs.Fields
oXL.ActiveCell = fld.Name
oXL.ActiveCell.Offset(0, 1).Select
Next
oXLWS.Range("A2").CopyFromRecordset rs
oXLWS.Range("1:1").Select
rs.Close
sSQL = "SELECT * FROM Exercise"
Set rs = CurrentDb.OpenRecordset(sSQL, dbOpenDynaset, [dbSeeChanges])
oXLWS.Range("A23").Select
For Each fld In rs.Fields
oXL.ActiveCell = fld.Name
oXL.ActiveCell.Offset(0, 1).Select
Next
oXLWS.Range("A24").CopyFromRecordset rs
oXLWS.Range("1:1").Select
rs.Close
Set rs = Nothing
Exit Sub