COME CREARE UNA SOTTOMASCHERA CON MICROSOFT ACCESS
Una maschera può visualizzare informazioni (campi) di una o più tabelle o query. Se si desiderasse visualizzare campi di diverse tabelleo 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 e ogni 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 relazioniuno-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 correlatonell'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) La tabella 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 una relazione 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 sottomaschera mostrerà tutti i prodotti che si riferiscono a quella categoria. Apriamo il database NWind2: nella barra degli strumenti facciamo click sul pulsante Relazioniper aprire la finestra Relazioni. Se la finestra di dialogoMostra 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. Se puntiamo il mouse sul campo IDCategoria in una tabella e lo trasciniamo su IDCategoria nell'altra tabella, viene visualizzata la finestra di dialogoModifica relazioni, 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 la relazione uno-a-molti tra i campi IDCategoria delle due tabelle, come nella E' possibile modificare o eliminare una relazione 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 di salvare il layout. Apriamo la maschera Categorie in modalità visualizzazione struttura 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, facciamo clic sul pulsante casella 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 Sulla maschera viene visualizzato un oggetto 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 campi NomeProdotto, IDCategoria, QuantitàPerUnità, PrezzoUnitario eQuantitàOrdinata all'elenco Campi selezionati facendo clic su ciascuno e poi facendo clic sulpulsante '>'. A questi punto facciamo clic su Avanti per visualizzare la terza pagina della creazione guidata Poichè un campo della sottomaschera è correlato a un campo della maschera principale(IDCategoria), viene selezionata l'opzione Mostra Prodotti per ogni record in Categorieche 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 la posizione 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 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 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 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, impostiamo sia la proprietà Selettori record che la proprietà Pulsanti spostamento su: No. Da notare che la proprietà visualizzazione predefinita è impostata su: foglio dati: possiamo 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 premiamoCanc. 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 Chiudiamo la maschera Categorie salvando le modifiche sia alla maschera che alla sottomaschera.