In the end I used (as they were all select queries):
For Each qryDef In db.QueryDefs
DBTable = qryDef.Name
cmd.CommandText = DBTable
cmd.CommandType = adCmdTable
Set rs = cmd.Execute
'Count the number of fields or column
MyFieldCount = rs.Fields.Count
Set xlWS = ApExcel.Worksheets.Add
xlWS.Name = DBTable
'Fill the first line with the name of the fields
For MyIndex = 0 To MyFieldCount - 1
'Draw border on the title line
MyCol = Chr((64 + MyIndex)) & InitRow
'ApExcel.Range("A" & InitRow & ":" & MyCol).Borders.Color = RGB(0, 0, 0)
MyRecordCount = 1 + InitRow
'Fill the excel book with the values from the database
Do While rs.EOF = False
For MyIndex = 1 To MyFieldCount
ApExcel.Cells(MyRecordCount, MyIndex).Formula = rs(MyIndex - 1).Value 'Write Value to a Cell
ApExcel.Cells(MyRecordCount, MyIndex).WrapText = False 'Format the Cell
Next
MyRecordCount = MyRecordCount + 1
rs.MoveNext
If MyRecordCount > 50 Then
Exit Do
End If
Loop
ApExcel.DisplayAlerts = False
For a = ApExcel.Sheets.Count To 1 Step -1
If Left(ApExcel.Sheets(a).Name, 5) = "Sheet" Then
If ApExcel.Sheets.Count = 1 Then
Else
ApExcel.Sheets(a).Delete
End If
End If
Next a
Next
ApExcel.Visible = True
'Suggest to the user to save it's work
Response = MsgBox("Save the Excel Sheet and clik OK", vbOKOnly, "Save your file")
'Close the connection with the DB
rs.Close
ApExcel.Cells(InitRow, (MyIndex + 1)).Formula = rs.Fields(MyIndex).Name 'Write Title to a Cell
ApExcel.Cells(InitRow, (MyIndex + 1)).Font.Bold = True
ApExcel.Cells(InitRow, (MyIndex + 1)).interior.colorindex = 36
ApExcel.Cells(InitRow, (MyIndex + 1)).WrapText = True
Next
Etc. Etc