Just getting to grips some VBA (this stuff\'s new to me so bear with us!)
From query ContactDetails_SurveySoftOutcomes, I\'m trying to first find a
DoCmd.TransferSpreadsheet
expects its third parameter to be a String (variable or literal) specifying the name of a table or query. So, instead of opening a DAO.Recordset
you could create a DAO.QueryDef
named something like "forExportToExcel" with the same SQL code, then use that name in the TransferSpreadsheet call.