Prova questa
ssql = "SELECT Dettagli_ordini.ID_ordine, Sum([Pezzi_Conf]*[Prezzo_Euro]) AS Tot, Ordini.Data_ordine, Format([Data_ordine],'mm/yyyy') AS Espr1"
ssql = ssql & " FROM Ordini INNER JOIN Dettagli_ordini ON Ordini.ID_Ordine = Dettagli_ordini.ID_ordine"
ssql = ssql & " GROUP BY Dettagli_ordini.ID_ordine, Ordini.Data_ordine, Format([Data_ordine],'mm/yyyy')"
ssql = ssql & " HAVING Format([Data_ordine],'mm/yyyy')='" & mese & "/" & anno & "';"
Scrivere
StrSQL=Valore1+Valore2
è diverso che scrivere
strSQL=Valore1
strSQL=strSQL+Valore2
La differenza è sostanzialmente nel limite massimo di caratteri consecutivi che il VBEditor ammette(che non ricordo se sono 255)...
Quindi la tua 1° scrittura, essendo fatta per concatenazione probabilmente superava il limite, oltre che contenere qualche errore di sintassi.
Fai sapere.