I have come across this problem and the only way I found to get round it is to write the data to a table and use the DoCmd.TransferSpreadsheet method which will allow you to output up to the Excel limit of records.
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "tblqry2009QA"...