Descrizione

Le Query VI parte.

Obiettivi della lezione

Saper interfacciare query e maschere.

Indice lezione

Lezione 18  -  Database

18.1          Maschere e query;

18.2          Esercizio.

Dati sulla lezione

Versione:

v1.0

Tempi:

1 ora / 60 minuti

Data svolgimento lezione:

07 Aprile 2003

Autore dei contenuti:

Vastapane Marco Attilio – Giuliano Luca

Autore materiali didattici:

Togni Francesca

 

La Teoria    

18.1  -  Maschere e query

In questa lezione ci si vuole soffermare a valutare l’importanza di poter interfacciare query e maschere in modo da ottenere i propri risultati in forma visiva più accattivante di un semplice foglio dati. Per poterlo fare si hanno a disposizione già tutti gli elementi, cioè le tabelle, le query, le maschere. Non è vero che per forza di cose si debba conoscere il linguaggio VBA, spesso ci si può arrangiare con gli strumenti che Access mette a disposizione anche dei principianti.

Ad esempio si consideri questo problema:

Uno studio di amministrazione deve gestire un certo numero di condomini. Ad ogni riunione dovrà poter consultare una maschera contenente i dati relativi alle spese sostenute da ogni condomino. Dopo aver impostato le tabelle necessarie (Voci, Condominio, Spese, Millesimi, Proprietari), si possono creare le maschere associate ad ognuna di esse per poter inserire i vari valori e poi impostare una query per calcolare le spese che interessano, tipo questa:

 

 

Nella query c’è tutto, incluso il filtro che può essere effettuato da una maschera, invece che da un semplice parametro. La formula adottata Forms!NomeMaschera!NomeCampo indica che il valore viene preso dalla maschera (Form in inglese) avente quel nome (nell’esempio era Avvio) e più precisamente dal campo specificato (nell’esempio Anno oppure IdCondominio). In questo modo si può legare una maschera a questa query e far in modo che venga aperta solo dopo aver inserito i valori desiderati.

 

La maschera Avvio potrebbe avere il seguente aspetto:

 

Dopo aver inserito i dati basta cliccare  sul pulsante per l’apertura della maschera subordinata ed apparirà il risultato della selezione, così:

 

 

Questa è solo una delle possibili visualizzazioni, ma di sicuro è la più immediata da sviluppare!

Se avessimo legato il pulsantino della maschera Avvio direttamente all’apertura della query, si sarebbe ottenuto questo risultato:

 

 

Si può affermare che avere delle maschere intermedie per ottenere dei filtri sui dati dà all’occhio un certo qual piacere rispetto alle canoniche finestrelle grigie di dialogo. A questo punto si potrebbe addirittura pensare di filtrare ulteriormente i dati per ottenere lo specifico di un singolo condomino, utilizzando direttamente questa maschera, oppure filtrare solo determinate spese (solo Acqua, solo Luce scale,…).  Tutto quanto è realizzabile senza scrivere una sola riga di codice. Comodo, no?

 

Operando secondo questa filosofia è possibile sviluppare un programmino con Access avente diverse maschere che si scambiano dati e attivano le query necessarie per calcolare, cancellare, inserire, modificare tutti i dati che si desidera.

 

 

La Pratica

18.2  -  Esercizio

 

Creare le seguenti tabelle:

TAXISTI

            IDTaxista         contatore Chiave

            Taxista             testo 100 caratteri

            Auto                testo 50 caratteri

            NumTaxi          numerico

 

CORSA

            IDChiamata     contatore chiave

            Giorno             data/ora

            Ora                  data/ora

            Destinazione     testo 150 caratteri

            TelChimante     testo 25 caratteri

            NumTaxi          numerico

            Costo              valuta € 2 decimali

 

Si vuole ottenere una maschera che permetta di conoscere, in base ad un determinato giorno ed un determinato taxista, il numero di chiamate al quale ha risposto e a quanto ammonta la somma ricavata.

Inserire i dati qui riportati.

 

 

Creare una maschera contenente due campi non associati dove poter inserire il nome del taxista e la data da selezionare, in modo da ottenere una schermata simile a questa:

Salvarla con nome “Avvio”.

 

Impostare ora la query per ottenere il risultato desiderato.

Sulla griglia QBE in visualizzazione struttura dovranno apparire i campi “Giorno”, “TelChiamante” e “Costo” della tabella CORSA, e il campo “Taxista” della tabella TAXISTI.

Naturalmente tra la tabella CORSA e la tabella TAXISTI dovrà essere impostato un JOIN esterno legando i campi “NumTaxi”.

 

I valori dovranno essere raggruppati e in corrispondenza della cella formula sotto “TelChiamante” dovrà apparire la dicitura conteggio, mentre sotto “Costo” la dicitura somma.

I criteri da impostare dovranno essere posti rispettivamente sotto “Giorno” e “Taxista” e saranno:

            Forms!Avvio!Data

            Forms!Avvio!Taxista

 

 

Salvare la query con nome RISULTATO.

 

Creare un’altra maschera legata a questa query, in modo da visualizzare i risultati che si otterranno ogni volta che si imposteranno i dati nella maschera “Avvio” e si cliccherà il tasto “Apri Maschera”.

Una possibile visualizzazione finale potrebbe essere la seguente:

 

 

 

Non è obbligatorio inviare l’esercizio al tutor.

Feedback

Per chiarimenti, si prega di lasciare la domanda direttamente sul Forum della piattaforma Maestra.