La query non è obbligatorio che la crei nel database.
All'interno della tua routine di stampa puoi accedere ai dati che ti servono in questo modo:
Sub Stampa
dim sSel as string
Dim rsSel as DAO.Recordset
sSel = \"SELECT <campo1>, <Campo2> .... <CampoN> \" & _
\"FROM <Tabella1> \" & _
\"WHERE <Condizioni> \" & _
\"ORDER BY ....\"
set rsSel = currentDB.OpenRecordset(sSel, dbOpenSnapShot)
WHITH rsSel
WHILE NOT .EOF
<procedure per la stampa>
.MoveNext
WEND
.Close
END WITH
END SUB
In questo modo la query è temporanea.
Ciao.