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
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
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.