Forms

3.110 Maschera continua dinamica basata su query a campi incrociati parametrica
  Roberto

Come ben si sa non si ha mai la certezza del nome dei campi di una query a campi incrociati parametrica a meno che non si imposti adeguatamente la sua proprietà Intestazione colonne attraverso la quale, appunto, si predefiniscono e si preintestano i campi della query a campi incrociati; questa imponderabilità fa sì che la creazione di una maschera continua basata su una query a campi incrociati parametrica dovrebbe essere fatta solamente dopo l'esecuzione della query, quando sono ormai noti tutti i nomi delle colonne della query stessa.
Se però non si vuole demandare all'utente finale l'onere di crearsi da solo la maschera basata sulla query a campi incrociati (cosa di solito impensabile), è necessario personalizzare dinamicamente da VBA le origini controllo dei controlli di una maschera continua generica non associata ed il caption delle relative etichette con i nomi dei campi della query a campi incrociati parametrica su cui deve essere basata la maschera stessa.
Le caselle di testo e le etichette saranno definite tutte non visibili e si renderanno visibili mano a mano che verranno personalizzate con il nome di un campo della query, così che alla fine nella maschera verranno visualizzati solo i controlli necessari e non tutti quelli inseriti nella maschera che dovrebbero essere invece tanti quanto il numero massimo dei campi previsti nella query a campi incrociati parametrica.

Nel database di esempio allegato a questa FAQ è mostrato un esempio di tale tecnica.
Alcune routine VBA contenute in tale database fanno riferimento alla libreria Microsoft DAO quindi, se vengono usate con una versione di Access successiva ad Access 97 sarà necessario aggiungre al database il riferimento a Microsoft DAO 3.6 Object Library.

Il database di esempio allegato a questa FAQ può risultare utile anche per vedere quale sia il codice SQL corretto di una query a campi incrociati parametrica (per maggiori dettagli vedere nella Sezione Queries di questo sito la FAQ intitolata 2.12 Query a campi incrociati parametrica) e come sia possibile aprire da VBA un recordset su una query parametrica, dove i parametri debbono essere passati da VBA contestualmnte all'apertura del recordset (per maggiori dettagli vedere nella Sezione Queries di questo sito la FAQ intitolata 2.2 Aprire una query parametrica da codice VBA).

Download:
 
  MascheraCampiIncrociati.zip (28Kb)


Se pensate di avere del materiale freeware interessante e volete pubblicarlo, allora leggete qui.