Maschera e sottomaschera con Access
Breve tutorial di MC2 E-Learning su maschere e sottomaschere di Access. Impariamo come si inserisce una sottomaschera in una maschera con Microsoft Access
Una maschera può visualizzare informazioni (campi) di una o più tabelle o query.
Se si desiderassevisualizzare campi di diverse tabelle o query su una maschera, la prima cosa da fare sarebbe quella di prendere in considerazione le relazioni che devono esistere tra quegli oggetti.
In Access una relazione è un'associazione tra campi comuni in due tabelle che ci permette di correlare le informazioni di una tabella alle informazioni di un'altra tabella.
Nel database NWind2, per esempio, si può stabilire una relazione tra la tabella Categorie e la tabella Prodotti, perché entrambe le tabelle hanno un campo IDCategoria.
Ogni prodotto è in una categoria eogni categoria può contenere molti prodotti, per cui questo tipo di relazione (la più comune) è nota come relazione uno-a-molti.
Durante la creazione di maschere e query, potrebbero venire riconosciute relazioni tra i campi nelle tabelle sottostanti. Probabilmente, però, non verranno riconosciute tutte quelle necessarie senza il nostro intervento manuale.
Oltre alle relazioni uno-a-molti, si possono creare relazioni uno-a-uno e relazioni molti-a-molti, ma queste non sono così comuni.
In una relazione uno-a-uno ogni record in una tabella può avere un solo record correlato nell'altra tabella.
Questo tipo di relazione non è comunemente usato perchè è più facile mettere tutti i campi in una tabella.
Si potrebbero però utilizzare due tabelle correlate, invece di una, per separare una tabella con molti campi o per tenere traccia di informazioni che riguardano solo alcuni record della prima tabella.
Una relazione molti-a-molti consiste effettivamente in due relazioni uno-a-molti legate insieme tramite una terza tabella.
Il database NWind2, per esempio, contiene le tabelle Prodotti, Ordini e Dettagli ordini (le tabelle sono tratte dal Database di esempio Northwind in dotazione a tutti gli utenti di Microsoft Access dalla versione 97' in poi)
Latabella Prodotti ha un record per ogni prodotto venduto e ogni prodotto ha un IdProdotto univoco.
La tabella Ordini ha un record per ogni ordine effettuato e ogni record contine un IdOrdine univoco. La tabella Ordini, però, non specifica quali prodotti sono stati inclusi in ogni ordine; questa informazione si trova nella tabella Dettagli ordini, che è la tabella nel mezzo che lega le altre due tabelle insieme.
Prodotti e Ordini hanno ciascuna unarelazione uno-a-molti con Dettagli ordini. Prodotti e Ordini, quindi, hanno una relazione molti-a-molti l'una con l'altra. In parole semplici, questo significa che ogni prodotto può apparire in molti ordini e ogni ordine può includere molti prodotti.
Nell'esempio seguente la relazione tra le tabelle Categorie e Prodotti è predefinita nel database corrente.
Vedremo come aggiungere una sottomaschera ad una maschera. Per ogni categoria visualizzata sulla maschera principale, la sottomascherà mostrerà tutti i prodotti che si riferiscono a quella categoria.
Apriamo il database NWind2: nella barra degli strumenti facciamo click sulpulsante Relazioni per aprire la finestra Relazioni.
Se la finestra di dialogo Mostra Tabella non è visualizzata, fate click sul pulsante Mostra tabella sulla barra degli strumenti e poi fai doppio click su Categorie e su Prodotti nell'elenco visualizzato. Chiudere la finestra di dialogo Mostra tabella per visualizzare la finestra Relazioni (figura 1).
Se puntiamo il mouse sul campo IDCategoria in una tabella e lo trasciniamo su IDCategoria nell'altra tabella, viene visualizzata la finestra di dialogo Modifica relazioni (figura 2), nella quale sono elencati i campi che si è scelto di correlare e sono disponibili altre opzioni
Facciamo clic sulla casella di controllo Applica integrità referenziale, poi clic sulle altre due caselle di controllo e quindi sul pulsante di comando 'Crea'.
Viene impiegato un sistema di regole chiamato integrità referenziale per assicurare che le relazioni tra record nelle tabelle correlate siano valide e che non vengano accidentalmente eliminati o modificati dati correlati.
Quando si seleziona la casella di controllo Aggiorna campi correlati a catena, se si modifica un valore chiave primaria nella tabella primaria, viene aggiornato automaticamente il valore corrispondente in tutti i record correlati.
Quando si seleziona la casella di controllo Elimina record correlati a catena, se si elimina un record nella tabella primaria, vengono eliminati tutti i record correlati nella tabella correlata.
Viene tracciata una linea che rappresenta larelazione uno-a-molti tra i campi IDCategoria delle due tabelle, come nella figura 3.
E' possibile modificare o eliminare unarelazione facendo clic sulla linea e facendo clic sul comando appropriato nel menù di scelta rapida.
Chiudiamo ora la finestra Relazioni, facendo clic su 'Sì' quando viene richiesto disalvare il layout.
Apriamo lamaschera Categorie in modalità "visualizzazione struttura" (figura 4).
Allarghiamo la finestra Maschera e trasciniamo il selettore della sezione Pie di pagina maschera in basso di circa 3 centimetri per avere un po' di spazio in cui lavorare.
Se la casella degli strumenti non è visualizzata, faciamo clic sul pulsanteCasella degli strumenti.
Ci assicuriamo che il pulsante Creazioni guidate Controllo nella casella degli strumenti siaattivo (mostri un bordo intorno).
Facciamo clic sul pulsante Sottomaschera/sottoreport e trasciniamo per creare un rettangolo nella parte inferiore della sezione Corpo (figura 5).
sulla maschera viene visualizzato unoggetto bianco e si apre la prima pagina della Creazione guidata Sottomaschera.
Mantieniamo selezionata l'opzione Usa tabelle e query esistenti e quindi facciamo clic su 'Avanti'.
Nell'elenco Tabelle/query facciamo clic su Tabella:Prodotti.
Aggiungiamo i campiNomeProdotto, IDCategoria, QuantitàPerUnità, PrezzoUnitario e QuantitàOrdinata all'elenco Campi selezionati facendo clic su ciascuno e poi facendo clic sul pulsante '>'.
A questio punto facciamo clic su 'Avanti' per visualizzare laterza pagina della creazione guidata (figura 6)
Poichè uncampo della sottomaschera è correlato a un campo della maschera principale (IDCategoria), viene selezionata l'opzione 'Mostra Prodotti per ogni record in Categorie che usa IDCategoria' per: 'Scelta dall'elenco'.
Se non venissero individuati i campi correlati, occorrerebbe selezionare l'opzione Definizione personalizzata affinchè siano visualizzate caselle di riepilogo in cui è possibile specificare i campi che devono essere correlati.
Facciamo clic ora su Avanti per accettare la selezione predefinita e quindi clic su Fine per accettare il nome predefinito per la sottomaschera e completare il processo.
La maschera Categorie viene visualizzata in visualizzazione Struttura, con una 'Sottomaschera Prodotti' incorporata.
Le dimensioni e laposizione della sottomaschera sono determinate dal rettangolo originale che avevamo tracciato sulla maschera.
Non ci resta che regolare le dimensioni e la posizione degli oggetti sulla maschera in modo che essa si presenti come in figura 7.
Da notare il layout della sottomaschera e poi facciamo clic su Visualizza (Barra degli strumenti) per attivare la visualizzazione Maschera, in cui la maschera ha l' aspetto mostrato in figura 8.
il formato della sottomaschera è totalmente cambiato. In visualizzazione struttura si presenta come una maschera semplice mentre in visualizzazione Maschera si presenta come un foglio dati.
Riattiviamo la visualizzazione Struttura, apportiamo le necessarie regolazioni alle dimensioni e, se è necessario, apriamo la finestra di dialogo Proprietà.
Facciamo clic due volte sul selettore della maschera nell'angolo superiore sinistro della sottomaschera. Il primo clic seleziona il controllo 'Sottomaschera Prodotti' e il secondo clic seleziona la maschera (si tratta di un oggetto separato dalla maschera categorie ed infatti è stato salvato separatamante nel database corrente).
Viene visualizzato un quadratino nero all'interno del pulsante. Nella scheda 'Formato' della finestra Proprietà per la sottomaschera, modifichiamo sia la proprietà 'Selettori record' che la proprietà 'Pulsanti spostamento' a: 'No'. Da notare che la proprietà 'Visualizzazione predefinita' è imposata a: 'Foglio dati': potremmo voler ritornare a questa proprietà e provare le altre opzioni in qualunque momento.
Riattiviamo ora la visualizzazione Maschera e trasciniamo le linee di divisione tra leintestazioni delle colonne in modo da poter vedere tutti i campi.
E' possibile regolare velocemente la larghezza delle colonne per adattarla ai dati facendo doppio clic quando è visualizzata la doppia freccia tra le intestazioni di colonna.
Facciamo clic sui pulsanti di spostamento per scorrere le categorie. Quando arriviamo all'ultima categoria, facciamo clic su Primo record per ritornare alla prima, Bevande.
Quando una determinata categoria è visualizzata in cima alla maschera, i prodotti di quella categoria sono elencati nel foglio dati della sottomaschera.
Facciamo clic sul nome della categoria a destra del primo prodotto. La freccia all'estrema destra della casella indica che si tratta di una casella combinata.
Facciamo clic sulla freccia per visualizzare l'elenco di categorie e modifichiamo la categoria a Condimenti.
Facciamo clic sul pulsante di spostamento Record successivo per passare alla prossima categoria (Condimenti). Si può vedere che il primo prodotto è ora incluso in questa categoria.
Visualizziamo l'elenco di categorie e ripristiniamo il primo prodotto alla categoria Bevande. Poichè non desideriamo che gli utenti riescano a modificare la categoria di un prodotto, torniamo alla visualizzazione Struttura.
Nella sottomaschera, quindi, facciamo clic sul controllo casella di testo IDCategoria e premiamo Canc.
Avevamo incluso il campo IDcategoria durante la creazione guidata della sottomaschera perchè si tratta del campo che correla le tabelle Categorie e Prodotti. La tabella Prodotti sottostante usa una casella combinata per visualizzare il nome della categoria invece del suo numero ID, per cui anche questa casella combinata è visualizzata nella sottomaschera.
Salviamo la maschera quindi ritorniamo alla visualizzazione Maschera e regoliamo la larghezza delle colonne della sottomaschera e la dimensione del form Categorie finchè la finestra non assume il seguente aspetto (figura 9).
Chiudiamo la maschera Categorie salvando le modifiche sia alla maschera che alla sottomaschera.
Avvertenza !
Il file dell'esempioMaschera-e-sottomaschera.zip contenente la Maschera Categorie con la sottomaschera prodotti di cui si è discusso in questo tutorial ed infine alcuni dati di prova tratti dal database 'NWind2.mdb', è disponibile nell'area 'Tutorial Download' riservata agli iscritti alle nostre newsletters. Iscriviti ora alla newsletter 'Utilizzare Access per davvero', è gratis! Puoi utilizzare il riquadro qui a lato sulla sinistra della pagina in alto oppure seguire questo collegamento:
http://www.mc2elearning.com/html/utilizzare_access.html
Il file dell'esempioMaschera-e-sottomaschera.zip contenente la Maschera Categorie con la sottomaschera prodotti di cui si è discusso in questo tutorial ed infine alcuni dati di prova tratti dal database 'NWind2.mdb', è disponibile nell'area 'Tutorial Download' riservata agli iscritti alle nostre newsletters. Iscriviti ora alla newsletter 'Utilizzare Access per davvero', è gratis! Puoi utilizzare il riquadro qui a lato sulla sinistra della pagina in alto oppure seguire questo collegamento:
http://www.mc2elearning.com/html/utilizzare_access.html
Esempi di Maschere con Microsoft Access
Tutorials su Microsoft Access
Dr.Maurizio Cucchiara
autore del corso:
"Corso Base di Microsoft Access"
disponibile on line su questo sito
MC2 E-Learning S.a r.l.
Formazione per il Web
http://www.mc2.it/html/access.html
Cerca sul web con Google: