Bingo! I managed to solve it.
Here's the SQL for the monthly chart:
SELECT (Format([FCT Yield Chart]![Date],"mmm"" '""yy"

) AS Month, Sum([FCT Yield Chart]![PASS]) AS Pass, Sum([FCT Yield Chart]![PASS])/(Sum([FCT Yield Chart]![PASS])+Sum([FCT Yield Chart]![FAIL(Debug)])) AS Yield, Sum([FCT Yield Chart]![PASS])+Sum([FCT Yield Chart]![FAIL(Debug)]) AS Total
FROM [FCT Yield Chart]
GROUP BY (Format([FCT Yield Chart]![Date],"mmm"" '""yy"

),
(Year([FCT Yield Chart]![Date])*12+Month([FCT Yield Chart]![Date])-1)
ORDER BY
(Year([FCT Yield Chart]![Date])*12+Month([FCT Yield Chart]![Date])-1)
, (Format([FCT Yield Chart]![Date],"mmm"" '""yy"

);
Here's the code for the weekly chart:
SELECT "W" & Format([FCT Yield Chart]![Date],"ww"

AS Week, Sum([FCT Yield Chart]![PASS]) AS Pass, Sum([FCT Yield Chart]![PASS])/(Sum([FCT Yield Chart]![PASS])+Sum([FCT Yield Chart]![FAIL(Debug)])) AS Yield, Sum([FCT Yield Chart]![PASS])+Sum([FCT Yield Chart]![FAIL(Debug)]) AS Total
FROM [FCT Yield Chart]
GROUP BY "W" & Format([FCT Yield Chart]![Date],"ww"

,
(Year([FCT Yield Chart]![Date])*CLng(54)+DatePart("ww",[FCT Yield Chart]![Date],0)-1)
ORDER BY
(Year([FCT Yield Chart]![Date])*CLng(54)+DatePart("ww",[FCT Yield Chart]![Date],0)-1)
, "W" & Format([FCT Yield Chart]![Date],"ww"

;
Nevertheless, thanks to those who've offered to help.