DBEVE3 Maschera e Sottomaschera

MOVIMENTI

Di seguito tutti i passaggi per mettere in relazione “Uno a Molti” due tabelle e visualizzare correttamente il risultato su maschera e sottomaschera. NB: il campo NOME della tabella ITEMS, per maggiore chiarezza nel progetto, è stato rinominato ITEM. NB2: il campo GIACENZA della tabella ITEMS è stato eliminato perchè verrà generato in fase successiva. Creare una tabella MOVIMENTI che abbia, tra gli altri, un campo CARICO, un campo SCARICO e un campo ID_ITEM: creare la relazione tra la tabella ITEMS e la tabella MOVIMENTI, così che ad ogni item possa corrispondere un numero infinito di movimenti. Impostare al proposito il campo ID_ITEM della tabella MOVIMENTI modificandolo in Casella Combinata”, quindi creare al suo interno una query in tabella che metta in ordine alfabetico gli items (nella query va quindi chiamata la tabella ITEMS)..

A questo punto la tabella MOVIMENTI, tramite casella combinata, permette il carico o lo scarico di un determinato item richiamandolo dalla tabella ITEMS. Conviene creare anche la maschera M_MOVIMENTI, così da poter inserire più facilmente qualche movimento di esempio. Abbiamo ormai nel database tre tabelle (ITEMS, CATEGORIE, MOVIMENTI), le relative maschere (M_ITEMS, M_CATEGORIE, M_MOVIMENTI) e una maschera di avvio esclusivamente utilizzata come menu di navigazione (M_AVVIO). Provvedere a popolare tutte le tabelle con un certo numero di records di esempio.

MASCHERA E SOTTOMASCHERA

Creare una query basata sulla tabella ITEMS. Questa volta non è una query su tabella (come quella creata sopra), ma una vera query di Access che va ad occupare uno spazio nel menu di navigazione del database… serve per ordinare alfabeticamente i records della tabella ITEMS, e va chiamata Q_ITEMS. Creare adesso una nuova maschera per la tabella ITEMS. Quella già esistente nel database, M_ITEMS, ha un layout Tabulare (fa vedere tutti i record sulla stessa pagina) e non è adatta per ospitare anche una sottomaschera. Serve una maschera che visualizzi un record alla volta. Evitando quindi la creazione guidata maschera, creare una nuova maschera vuota e scegliere come origine record la query Q_ITEMS. Questa scelta permette di avere, nella nuova maschera che visualizza i records uno alla volta, un pratico ordinamento alfabetico (scegliendo come origine record direttamente la tabella ITEMS, i record sarebbero in ordine di ID). Trascinare i campi presenti nella query Q_ITEMS all’interno della nuova maschera e posizionarli nella parte alta; aggiungere anche due pulsanti per spostarsi tra records. Questa maschera viene chiamata M_ITEMS2, nome che la distingue da quella già presente nel database, sempre collegata alla tabella ITEMS ma a visualizzazione tabulare. La nuova maschera M_ITEMS2, visualizzando un record alla volta, torna utile per mostrare tutti i movimenti che riguardano un singolo item. Attenzione, in questa fase non si lavora sulle tabelle: esiste una relazione “Uno a Molti” tra la tabella ITEMS e la tabella MOVIMENTI, ed altro non serve. In questa fase si lavora solo sulle maschere, per proporre una visualizzazione di dati più completa. Nella parte bassa della maschera posizionare un comando Sottomaschera e scegliere una tabella esistente (MOVIMENTI); la procedura genera automaticamente una sottomaschera, che chiamiamo SM_MOVIMENTI. In alternativa si può scegliere anche una maschera già esistente, e in questo caso la procedura non genererà alcuna nuova sottomaschera. Scegliere una definizione personalizzata e mettere in relazione l’ID in maschera con l’ID_ITEM in sottomaschera. Con alcuni aggiustamenti grafici il risultato è il seguente: la maschera M_ITEMS nella parte alta, la sottomaschera SM_MOVIMENTI nella parte bassa.

Con maschera e sottomaschera è quindi possibile visualizzare, per ogni oggetto (item) il dettaglio dei movimenti. La cosa è ovviamente replicabile per tutte le tabelle che abbiano una relazione “Uno a Molti”, come quella qui descritta tra la tabella ITEMS e la tabella MOVIMENTI. Ad esempio, dovesse servire, si potrebbe fare una cosa simile e visualizzare, per ogni categoria (tabella CATEGORIE) tutti gli oggetti ad essa assegnati (tabella ITEMS).

 

Torna su