Beh.... se le query funzionano a dovere, a meno che non hai esigenze particolari, fosse per me non andrei a complicarmi la vita e lascerei il mondo come sta.
A parte questo, mi sembra che il limite in VBA di una lunghezza di una stringa composta dovrebbe essere sui 1020 caratteri (ma sinceramente è una di quelle informazioni che anche se le leggi, non te le ricordi quindi prendiamola per sbagliata).
La soluzione migliore a mio avviso è quella proposta da Alex, perchè in realtà diventa anche la più leggibile e la più chiara, perchè ti permette di avere una query molto complessa suddivisa in parti più semplici.
Trattandosi di una stringa composta, per la sua esecuzione è il risultato finale dell'unione delle sottoparti che conta, quindi puoi tranquillamente dividere il codice come meglio credi, anche singola parola per singola parola, tanto come detto è l'unione finale che conta (e che manderai in esecuzione) e se le parti sono unite bene il risultato è garantito.
Anzi per ogni singolo step, puoi anche mettere un commento esplicativo di cosa fa quella porzione di codice all'interno della query.
Cosa che con altri sistemi sarebbe impossibile da fare.
esempio:
Dim strSQL As String 'variabile finale
strSQL=strSQL & "SELECT fld1, fld2, NomeFunction(fld1) As fldCalc1 " ' seleziono da queste tabelle etc etc
strSQL=strSQL & "fld3, fld4, NomeFunction2(fld5) As fldCalc21 " ' e poi aggiungo dalle tabelle
strSQL=strSQL & "FROM T1 "
strSQL=strSQL & "WHERE Year(fld3)=Year(Now()) AND fld4='" & Me!NomeControllo.Value & "' "
strSQL=strSQL & "ORDER BY fld1 DESC, fld2 DESC "
Forse l'utilità di usare Il VBA per le query complesse è proprio la possibilità di riportare la query a valori atomici.
Diciamo che abbiamo normalizzato la query in NF1
(va beh... questa me la potevo risparmiare )