I punti a, c vogliono sapere l'output di un solo valore, perciò serve la FUNZIONE.
Il punto b vuole come output una serie di valori, quindi un recordset, quindi una nuova query (Query2).
Non capisco la domanda "query1 sarà eseguita una volta sola"?
Se la esegui essa si espliciterà come tale e tu vedrai il recordset di Query1.
Se a te serve vedere il recordset di Query2, lo esegui. Query1 fa solo da "base dati" per Query2, ma Query1 non viene nemmeno eseguita.