Ciao Osvaldo, grazie per la risposta;
ho spiegato in dettaglio il progetto perchè magari il problema può essere risolto impostando il tutto diversamente;
in pratica la domanda è la seguente: da codice vba (o con una macro) posso creare una maschera come da funzione access "Creazione guidata maschera"?
Cerco di rendere più chiaro il progetto:
- query pass-trough (oggetto query tipo questa ;
- maschera "Main" con una pulsante che all'evento "click" esegue questo codice
Private Sub BtnQuery_Click()
Dim SQL As String, qdf As DAO.QueryDef
Set qdf = CurrentDb.QueryDefs("querytesto")
Dim strSQL As String
strSQL = ""
Dim hnd As Integer
hnd = FreeFile
Open Application.CurrentProject.Path & "\" & "dichiarazioni.sql" For Input As hnd
Dim row As String
Do Until EOF(hnd)
Line Input #hnd, row
strSQL = strSQL & row & vbNewLine
Loop
Close #hnd
qdf.SQL = strSQL
DoCmd.OpenQuery "querytesto", acViewPivotChart
End Sub
il codice legge la query da un file di testo denominato "dichiarazioni.sql" e lo inserisce nella proprietà "sql" dell'oggetto "qdf" che sarebbe la query pass-trough creata in precedenza;
poi tramite il comando DoCmd.OpenQuery si mostra il risultato della query;
se creo una maschera, tramite la "Creazione guidata di maschera", e la associo alla query con il suo testo iniziale (prima che venga modificato dal codice sopra), i controlli della maschera verranno creati in base ai campi dell'attuale testo della query associata.
Esempio:
creazione query pass-trough "MiaQuery"
testo query: "select * from ordini"
creazione maschera "Main": maschera vuota
creazione guidata maschera "Risultato": crea una maschera con i campi NumOrdine, DataOrdine, NumCliente, NomeCliente
(all'apertura della maschera vengono mostrati i dati della query "select * from ordini")
creazione pulsante "Lancio Query": sulla maschera "Main" creo questo pulsante alla cui pressione viene modificato il testo della query "MiaQuery" con il seguente "select * from utenti"
se apro a questo punto la maschera "Risultato" nella griglia non saranno visualizzati i risultati poichè i controlli si aspettano ancora di trovare i campi NumOrdine, DataOrdine, NumCliente, NomeCliente, mentre la query lanciata ha i campi IdUtente, NomeUtente, DataCreazione
Spero di essere stato esaustivo