Esercitazioni di Sistemi Informativi Ing. Maurizio Vincini [email protected] Basi di Dati - Access 1 MS Access Un DBMS relazionale per Windows l Quali DBMS in ambiente PC: – – – – – – – – dBase (per windows) FoxPro (per windows) Access (per windows) SQL Server (client/server) Oracle (client/server) Informix (client/server) ... NB: client/server si riferisce a sistemi distribuiti in rete con elaboratori più potenti che gestiscono i dati (server) e pc collegati da cui gli utenti richiedono operazioni (client) Basi di Dati - Access 2 Caratteristiche di MS Access Interazione completamente a finestre l Funzioni (vista utente): l – – – – – – l creazione e consultazione di tabelle, interfaccia tabellare interfaccia a schede personalizzabili (un record per volta) interfaccia SQL salvataggio e modifica di interrogazioni generazione di report multiutenza Funzioni (vista sistema) – – – – chiavi primarie e indici valori nulli, regole di validità e domini di valori gestione vincoli di integrità referenziale programmazione Basi di Dati - Access 3 Database – – – – – – – è un contenitore di tabelle, maschere, query, report, moduli, macro le tabelle contengono i dati, gli altri tipi di documenti forniscono strumenti di accesso personalizzati ogni strumento di accesso può essere generato automaticamente in forma standard, poi modificato secondo le esigenze ogni strumento può essere usato o modificato è possibile importare/esportare DB da/verso i dbms più diffusi i dati possono essere facilmente collegati ad altri strumenti di ambiente windows (es: excel, word, ...) dal punto di vista DOS è un unico file con estensione .MDB Basi di Dati - Access 4 Finestra principale database Basi di Dati - Access 5 Oggetti di un DB l tipi di oggetti: – – – – – – tabelle: contenitori di dati (relazionali) query: operazioni sui dati (di consultazione o modifica) maschere: interfacce visuali per l’accesso ai dati report: produzione di stampe macro: sequenze di operazioni pre-registrate e rieseguibili a comando moduli: applicazioni programmate ogni oggetto può essere creato, memorizzato, utilizzato, modificato l tramite tabelle, maschere e query si possono anche modificare i dati l Basi di Dati - Access 6 Struttura di tabella nomi, tipi e dimensioni dei campi l chiave primaria l indici l possibilità di duplicati o di nulli l valori di default l regole di convalida l messaggi di errore l Basi di Dati - Access 7 Relazioni l l l stabiliscono i vincoli di integrità referenziale uno a uno e molti a molti in caso di aggiornamento e cancellazione di un record padre che ha figli si può: – – richiedere l’aggiornamento impedire l’operazione Basi di Dati - Access 8 Consultazione di tabella l l l l operazione di browse su tutta la tabella possibilità di filtrare i dati con una regola di restrizione possibilità di ordinamento possibilità di aggiornare direttamente i dati Basi di Dati - Access 9 Query l l l l maschera di ausilio alla formulazione di query una query su più tabelle ha, come predicati di join automatici, le relazioni definite sul DB in assenza di relazioni predefinite i predicati di join si stabiliscono graficamente come le relazioni è possibile definire ulteriori predicati (criteri), raggruppamenti o ordinamenti Basi di Dati - Access 10 Query - SQL l l l si può passare indifferentemente dalla formulazione assistita alla formulazione SQL la formulazione SQL ha maggiore potere espressivo, ma è più complessa il linguaggio SQL contiene numerose variazioni rispetto allo standard (estensioni, modifiche e limitazioni) Basi di Dati - Access 11 Query - risultato l l l l una query produce una vista sui dati e può essere manipolata come una tabella le viste ottenute da query con raggruppamenti non sono modificabili le viste da query con join sono direttamente modificabili i dati sono modificati sulle tabelle base Basi di Dati - Access 12 Maschere l l l l l maschera di visualizzazione, aggiornamento e inserimento può essere generata automaticamente a partire dalla struttura di una tabella o di una query può essere personalizzata dal punto di vista sia grafico che funzionale menu a tendina, pulsanti di opzione, procedure da associare ai vari eventi (pressione del mouse in un punto determinato, rilascio del mouse, ...) procedure di controllo per vincoli di integrità Basi di Dati - Access 13 Report l per la produzione di stampe l personalizzare le intestazioni l definire gruppi e sottogruppi l calcolare totali parziali sui gruppi Basi di Dati - Access 14 Import / Export l è possibile importare o esportare dati con: – – – – l dBase Excel Lotus Database SQL è possibile esportare – – intere tabelle risultato di query Basi di Dati - Access 15 Programmazione di applicazioni visione a oggetti: ad ogni oggetto possono essere collegate diverse funzioni da attivare al verificarsi di eventi l interfaccia principale fornita dalle maschere l gli eventi sono forniti dalle interazioni dell’utente con mouse e tastiera l le funzioni sono scritte in Visual Basic l Visual Basic è un linguaggio di programmazione strutturata che interagisce con gli oggetti del db l con la programmazione si può ulteriormente semplificare l’esecuzione dei vari compiti l Basi di Dati - Access 16 Creazione Database l l l l Selezionare Nuovo database dal menu File Nella finestra Nuovo selezionare l’icona Database vuoto nella scheda Generale e confermare con OK Dalla finestra Salva nuovo database assegnare un nome al database da creare, scegliere la cartella in cui di desidera salvare il database e fare clic sul pulsante Crea. Esempio: studente.mdb Basi di Dati - Access 17 Creazione Tabella 1 l l Dalla finestra Tabelle fare clic sul pulsante Nuovo per visualizzare la finestra Nuova Tabella Selezionare Visualizzazione struttura Basi di Dati - Access 18 Creazione Tabella 2 l Nella prima colonna digitare i nomi dei campi: – la lunghezza massima di un campo nome è di 64 caratteri – una tabella non può contenere due campi con lo stesso nome l Nella colonna Tipo dati fare clic sul pulsante a freccia e selezionare il tipo di dato corrispondente al campo creato: – Testo, da 1 a 255 caratteri – Memo, fino a 64.000 caratteri – Numerico – Data/Ora – Valuta – Contatore – Si/No Basi di Dati - Access 19 Creazione Tabella 3 l Definizione campo chiave primaria: – selezionare il campo (o i campi) che si desidera definire come chiave primaria – fare clic sullo strumento Chiave primaria l Salvare la tabella definita: – Chiudere la tabella (selezionare Chiudi dal menu File) – Nella finestra di dialogo Salva con nome, digitare il nome della tabella e premere Invio. Basi di Dati - Access 20 Immissione dei dati l Aprire la tabella in modalità Foglio Dati facendo doppio clic sul suo nome oppure tramite il pulsante Apri. Posizionarsi sull’ultimo record vuoto. l Digitare il contenuto del record. l Successivamente è possibile: – Spostarsi all’interno della tabella tramite i tasti della tastiera tramite mouse – Selezionare e modificare il contenuto – Eliminare un record – Annullare le modifiche apportate – Correggere gli errori di immissione Basi di Dati - Access 21 Ordinamento l Ordinamento crescente o decrescente – selezionare il campo su cui effettuare l’ordinamento – selezionare Ordinamento crescente oppure decrescente l Ordinamento su più campi – selezionare il comando Ordinamento/filtro avanzato dal sottomenu Filtro del menu Record – selezionare i campi sul quale effettuare l’ordinamento, specificare il tipo di ordinamento per ciascun campo – fare clic sullo strumento Applica filtro Basi di Dati - Access 22 Personalizzazione della visualizzazione Foglio dati E’possibile: l modificare l’ampiezza della colonna l bloccare le colonne in modo che restino sempre visualizzate l modificare l’altezza di una riga l visualizzare o nascondere le linee della griglia l modificare il tipo di carattere l salvare le modifiche di visualizzazione (Salva layout) Basi di Dati - Access 23 Le Maschere l consentono di visualizzare e gestire in modo diverso i dati contenuti nelle tabelle Creazione di una maschera Visualizzare la scheda Maschere e selezionare Nuovo. l Si può utilizzare: – funzione di autocomposizione – modalità Visualizzazione Struttura l Basi di Dati - Access 24 Autocomposizione Maschera Si seleziona il nome della tabella l Si seleziona i campi della tabella l Selezionare il formato di visualizzazione: –a colonne –tabulare –foglio dati l Specificare lo stile di visualizzazione l Specificare il titolo l Basi di Dati - Access 25 Creazione maschera vuota scegliere modalità visualizzazione struttura l è possibile aggiungere: l – caselle di testo – etichette – altri controlli (pulsanti, casella di controllo, casella combinata etc...) la finestra di lavoro è costituita: l area di lavoro l strumenti – barra degli strumenti – righelli – casella degli strumenti Basi di Dati - Access 26 Sezioni di una maschera Una maschera può essere suddivisa in cinque sezioni: –Intestazione maschera –Intestazione pagina –Corpo –Piè di pagina pagina –Piè di pagina maschera l di default viene visualizzato solo il corpo l è possibile modificare le dimensioni di ciascuna sezione e specificare le proprietà l Basi di Dati - Access 27 Modifica proprietà di una maschera l Seleziona la maschera tramite il comando Seleziona del menu Modifica, utilizzare lo strumento Proprietà per visualizzare le proprietà della maschera. Basi di Dati - Access 28 Controlli l Si suddividono i tre categorie – Controllo associato: consente la visualizzazione, l’aggiornamento e la modifica dei dati contenuti nel campo – Controllo non associato: consente la visualizzazione di un testo informativo o di altri elementi grafici come linee, contorni e altre figure – Controllo calcolato: consente di effettuare calcoli sulla base di dati contenuti nella tabella. Basi di Dati - Access 29 Casella degli strumenti 1 Seleziona oggetti l Autocomposizione controllo l Etichetta l Casella di testo l Gruppo di opzioni l Interruttore l Pulsante di opzione l Casella di controllo l Casella combinata l Casella di riepilogo l Basi di Dati - Access 30 Casella degli strumenti 2 Pulsante di comando l Immagine l Cornice oggetto non associato l Cornice oggetto associato l Interruzione di pagina l Sottomaschera/sottoreport l Linea l Rettangolo l Basi di Dati - Access 31 Creazione casella di testo l per creare una casella che visualizza il contenuto di un campo: – visualizzare l’elenco dei campi facendo clic sullo strumento Elenco campi e poi trascinare il campo nella posizione desiderata l per creare una casella di testo da utilizzare come campo calcolato o come controllo associato: – fare clic sullo strumento Casella di testo e fare clic sul punto in cui si vuole venga visualizzata l’angolo superiore sinistro della casella. Basi di Dati - Access 32 Relazioni tra tabelle l l l stabiliscono i vincoli di integrità referenziale tabella primaria -> chiave primaria (primary key) tabella correlata -> chiave esterna (foreign key) chiave primaria chiave esterna Basi di Dati - Access 33 Tipi di Relazioni l Relazione uno-a-molti – In una relazione uno-a-molti un record della tabella A può avere molti record corrispondenti nella tabella B, ma un record della tabella B non ha più di un record corrispondente nella tabella A. l Relazione molti-a-molti – In una relazione molti-a-molti un record della tabella A può avere molti record corrispondenti nella tabella B e viceversa. Ciò è possibile solo definendo una terza tabella, chiamata tabella di congiunzione, la cui chiave primaria consiste almeno di due campi, vale a dire le chiavi esterne da entrambe le tabelle A e B. l Relazioni uno-a-uno Basi di Dati - Access 34 Integrità referenziale l È possibile impostare l'integrità referenziale quando vengono soddisfatte tutte le seguenti condizioni: – Il campo corrispondente della tabella primaria è una chiave primaria o dispone di un indice univoco. – I campi correlati contengono lo stesso tipo di dati. – Entrambe le tabelle appartengono allo stesso database di Microsoft Access. l Quando viene applicata l'integrità referenziale, è necessario osservare le seguenti regole: – Non è possibile immettere un valore nel campo chiave esterna della tabella correlata che non esiste nella chiave primaria della tabella primaria. – Non è possibile eliminare un record da una tabella primaria, se esistono i record corrispondenti in una tabella correlata. – Non è possibile modificare un valore chiave primaria nella tabella primaria, se quel record dispone di record correlati. Basi di Dati - Access 35 Definizione delle relazioni 1 l l l l Selezionare Relazioni dal menu Strumenti Selezionare le tabelle desiderate e fare clic sul pulsante Aggiungi. Fare clic sul pulsante Chiudi. Per definire una relazione fare clic sul campo comune dalla parte a uno e trascinarlo sul campo corrispondente dell’altra tabella (foreign key). Basi di Dati - Access 36 Definizioni delle relazioni 2 E’ possibile specificare se si desidera che vengano automaticamente eseguite in successione le operazioni di eliminazione ed aggiornamento per i record correlati. Se si impostano queste opzioni, le operazioni di eliminazione e di aggiornamento, che di solito sarebbero impedite dalle regole sull'integrità referenziale, vengono consentite. Basi di Dati - Access 37 Proprietà campi E` possibile modificare le proprietà di ciascun campo Basi di Dati - Access 38 Dimensione campo campi testo: valore compreso tra 1 e 255 l campi numerici tipo dato valori memoria (bytes) --------------------------------------------------------------------------l byte intero intero lungo precisione singola precisione doppia Basi di Dati - Access 0 255 -32768 - 32765 -2147483648 2147483647 -3,402823E38 3,402823E38 7 cifre decimali 1,79769313486232E308 1,79769313486232E308 15 cifre decimali 1 2 4 4 8 39 Formato campi numerici l determina l’aspetto di visualizzazione di un numero: – numero generico – valuta – fisso – standard – percentuale – scientifica l è possibile specificare un formato personalizzato Es. #.###,0; -#.###,0;0,0;”Nullo” 72354,657 -72354,857 0 Basi di Dati - Access 72.354,9 -72.354,9 0,0 Nullo 40 Formato Tipo Data/Ora l Esistono diversi formati – Data generale – Data estesa – Data breve – Data in cifre – Ora estesa – Ora breve 12h – Ora breve 24h l 04/03/93 17.34.00 sabato 3 aprile 1993 03/apr/93 04/03/93 17.34.23 5.34 PM 17.34 Formati personalizzati – È possibile creare formati di data e ora personalizzati utilizzando dei codici di definizione Basi di Dati - Access 41 Formato campi di tipo si/no e campi testi l sono disponibili i seguenti formati – vero/falso – si/no – on/off l formato personalizzato per campi testo diviso in due parti – la prima specifica la visualizzazione del testo – la seconda specifica il formato quando il campo è vuoto @ è necessario un carattere di testo & non è necessario un carattere di testo < rende il testo minuscolo > rende il testo maiuscolo Basi di Dati - Access 42 Maschera di input e Etichetta l maschera di input – consente di impostare un formato predefinito – per creare una maschera di input tramite autocomposizione selezionare la casella e fare clic sul pulsante Genera l etichetta –consente la definizione di un nome alternativo come intestazione di colonna nella visualizzazione Foglio dati. Basi di Dati - Access 43 Valore predefinito valore visualizzato automaticamente durante l’immissione dei dati in un nuovo record l come valore predefinito è possibile usare un`espressione del tipo: l =1 =“MI” =Null =Date() =DatePart(“m”, Date()) =Format(Date() “gg-mm-aaaa”) = Now() = Time Basi di Dati - Access 1 MI valore nullo data corrente mese della data corrente data nel formato specificato data e ora corrente ora corrente 44 Generatore di espressioni consente di comporre un espressione come valore predefinito l selezionare la casella valore predefinito l fare clic sul pulsante Genera l è possibile selezionare l – funzioni – costanti – operatori Basi di Dati - Access 45 Valido se consente di definire un intervallo di valori accettabili per un campo l è possibile utilizzare delle espressioni come combinazione di: l – operatori – costanti – funzioni – campi – proprietà l E’possibile utilizzare il generatore di espressioni Basi di Dati - Access 46 Messaggio errore - Richiesto Messaggio errore: è possibile definire un messaggio personalizzato quando un dato immesso in un campo non soddisfa la regola di convalida l Richiesto: consente di impedire la memorizzazione in un campo di un valore nullo l Consenti lunghezza zero: per distinguire tra i valori nulli e stringhe a lunghezza zero l Basi di Dati - Access 47 Indicizzato consente di definire un indice per rendere più rapide le operazioni di ordinamento e ricerca l l’indice può essere costituito da uno o più campi l Nel primo caso (un campo solo) selezionare la proprietà Indicizzato, esistono tre opzioni: l – No – Si (duplicati possibili) – Si (duplicati impossibili l Nel secondo caso occorre usare lo strumento Indici Basi di Dati - Access 48 Valori Null Campo che non contiene caratteri o valori. Un campo Null è diverso da una stringa di lunghezza zero ("") o da un campo contenente un valore zero. l Non è possibile immettere un valore Null per una chiave primaria. l Integrità referenziale: è possibile immettere un valore Null nella chiave esterna, specificando che i record non sono correlati. l Basi di Dati - Access 49 Espressioni Un'espressione è un insieme di simboli che producono un risultato. l Un’espressione è costituita da una combinazione di: l – operatori – nomi di campi o di controlli (identificatori) – valori alfanumerici – costanti – funzioni Somma([Prezzo unitario] * [Quantità])*0,9 Basi di Dati - Access 50 Uso delle espressioni Impostazione di una proprietà che definisce un controllo calcolato, stabilisce una regola di convalida imposta un valore di campo predefinito. l Immissione di un'espressione criterio, creazione di un campo calcolato o aggiornamento di record in una query o in un filtro. l Impostazione di una condizione per l'esecuzione di un'azione o di una serie di azioni in una macro o specifica di argomenti per più azioni. l Basi di Dati - Access 51 Regole di immissione 1 l Le espressioni prevedono i seguenti caratteri di controllo: [] prima e dopo nomi di maschere, report, campi e controlli. # Prima e dopo le date. “ Prima e dopo un testo. l Access inserisce automaticamente i caratteri di controllo in alcuni casi (inserimento in una tavola delle proprietà, in una cella di una griglia QBE) Basi di Dati - Access 52 Regole di immissione 2 l nomi di campi o di controllo [Prezzo unitario] la parentesi è obbligatoria se il nome contiene spazi bianchi ma è sempre consigliabile Un numero può essere immesso direttamente [Quantità] < 25 l Un testo deve essere tra virgolette [settore] <> “Narrativa” l Date e ore devono essere tra # [Data] >#1/2/96# l Costanti (Null, si, Vero, etc) l Basi di Dati - Access 53 Operatori indicano il tipo di azione che deve essere eseguita o il modo in cui devono essere confrontati due valori l operatori aritmetici (*, /, \, +, - , ^, MOD) l operatori di concatenazione (&) l operatori di confronto (>, >=,<,<=,=, <>) l operatori logici (and, or, xor, not, eqv, imp) l operatori vari (Between ... And, In, Is (null), Is not (null), Like) l Basi di Dati - Access 54 Operatori di identificazione indicano la relazione esistente tra gli elementi di un identificatore ! seguito dal nome di un elemento definito dall’utente . è utilizzato per riferirsi a un nome di una proprietà l per specificare che un controllo o una proprietà appartengono ad un oggetto è possibile includere il nome di un oggetto (Maschere, Report, Schermo) Maschere![clienti]![codice cliente] l Basi di Dati - Access 55 Query l Esistono due tipi principali di query: – query di selezione: consentono di ricercare, estrarre dati contenuti in una o più tabelle; – query di comando: consentono di modificare, aggiornare, eliminare o aggiungere dati a una o più tabelle l Esistono due modalità: – QBE (Query By Example) : query tramite esempio – SQL l l si può passare indifferentemente dalla formulazione assistita alla formulazione SQL la formulazione SQL ha maggiore potere espressivo, ma è più complessa Basi di Dati - Access 56 QBE Query di selezione Dalla finestra Query fare clic sul pulsante nuovo e scegliere modalità visualizzazione struttura l Dalla finestra Mostra tabella scegliere le tabelle desiderate l Basi di Dati - Access 57 Selezione dei campi l è possibile selezionare i campi in diverse modalità: – selezionare i campi dalla tabella e trascinarli su una colonna della griglia – selezionare il campo nella casella Campo della griglia QBE – digitare il nome del campo nella casella Campo l per visualizzare tutti i campi è possibile utilizzare l’asterisco Basi di Dati - Access 58 Esecuzione di una query Quando si salva una query viene salvata la struttura della query l E’possibile eseguire una query: l – dalla modalità visualizzazione struttura utilizzando lo strumento Esegui o Visualizzazione Foglio Dati – dalla scheda Query tramite il pulsante Apri oppure tramite doppio clic sul nome della query Basi di Dati - Access 59 Ordinamento di record l l’ordinamento può essere per diversi tipi: – alfabetico per nome – cronologico per data – numerico per valore l per specificare l’ordinamento selezionare nella casella Ordinamento sotto il nome del campo selezionare il tipo: – Crescente – Decrescente – Non ordinato l è possibile eseguire un ordinamento su più campi specificando il tipo di ordinamento per ciascun campo Basi di Dati - Access 60 Criterio di ricerca Specifica il criterio di selezione per ciascun campo l E’possibile usare il Generatore di espressioni l Esistono diversi criteri l – ricerca di un valore specifico (Es. =“Milano”) – ricerca di una parte di testo (Es. Like “A*”) – ricerca di un testi all’interno di altri (“*dei Cipressi*”) – ricerca tramite Is Null/ Is Not Null – ricerca di intervalli di date (Between 1/1/98 And 31/3/98) Basi di Dati - Access 61 Criteri di ricerca l E’possibile specificare diversi criteri con le seguenti tecniche: – per relazioni di tipo And tra diversi campi, posizionare i criteri di ricerca sulla stessa riga della griglia QBE – per relaziondi di tipo Or tra diversi campi, posizionare i criteri di ricerca su righe separate della griglia QBE – per specificare una relazione di tipo And in un singolo campo utilizzare l’operatore And – per specificare una relazione di tipo Or in un singolo campo utilizzare l’operatore Or o In Basi di Dati - Access 62 Calcoli E’possibile inserire un campo calcolato nella griglia QBE. l Posizionarsi su un campo vuoto e digitarvi un’espressione [Quantità] * [Prezzo unitario] l Si puo’assegnare alla colonna un’intestazione e poi utilizzare tale nome per effettuare altri calcoli Prezzo complessivo: [Quantità] * [Prezzo unitario] Prezzo con IVA: [Prezzo complessivo] * 1,04 l Basi di Dati - Access 63 Utilizzare il linguaggio SQL l l l E’ possibile utilizzare direttamente l'istruzione SQL sottostante una query dopo aver creato una query in visualizzazione Struttura. Fare clic sulla freccia accanto al pulsante delle visualizzazioni sulla barra degli strumenti, quindi scegliere Visualizzazione SQL. Viene visualizzata l'istruzione SQL equivalente a quella creata in visualizzazione Struttura. – Se si desidera apportare delle modifiche, digitarle nell'istruzione SQL. – Per visualizzare le modifiche nella griglia di struttura, fare clic sulla freccia accanto al pulsante delle visualizzazioni sulla barra degli strumenti, quindi fare clic su Visualizzazione Struttura. Basi di Dati - Access 64 Utilizzo di SQL l E’necessario usare direttamente il linguaggio SQL per: – query di definizione dati: questo tipo di query crea o modifica gli oggetti di database. – query di unione: combina i campi o le colonne di una o più tabelle in un campo o una colonna nei risultati della query. – sottoquery: questo tipo di query è costituito da un'istruzione SQL SELECT all'interno di un'altra query di selezione o di comando. Basi di Dati - Access 65 Query di definizione Dati Dopa aver creato una nuova query scegliere Specifica SQL dal menu Query, quindi scegliere Definizione dati. l Immettere l'istruzione SQL per la query di definizione dati. l Access supporta i seguenti tipi di query: l – CREATE TABLE crea una tabella. – ALTER TABLE aggiunge un nuovo campo o vincolo ad una tabella esistente. – DROP elimina una tabella da un database o rimuove un indice da un campo o da un gruppo di campi. – CREATE INDEX crea un indice per un campo o per un gruppo di campi Basi di Dati - Access 66 Query basate su più tabelle Tramite la griglia QBE è possibile definire query di Join l Per definire le relazioni esistenti tra tabelle: l – se la relazione è già impostata, Access le unisce automaticamente visualizzando una linea di Join – se la relazione non è stata impostata, Access può creare automaticamente un join utilizzando i campi comuni delle tabelle – è possibile impostare un join facendo clic sul nome del campo che si desidera utilizzare in una tabella e trascinarlo sul nome corrispondente dell’altra tabella Basi di Dati - Access 67 Tipi di Join per default access genera un equi-join l per creare un join esterno (outer join) – selezionare la linea di join da modificare e fare doppio clic – scegliere l’opzione desiderata: l » 1 - includi solo le righe in cui i campi collegati da entrambe le tabelle sono uguali (INNER JOIN) » 2 - includi tutti i record di tabella1 e solo i record di tabella2 in cui i campi collegati sono uguali (LEFT JOIN) » 3 - includi tutti i record di tabella2 e solo i record di tabella1 in cui i campi collegati sono uguali (RIGHT JOIN) Basi di Dati - Access 68 QBE vs SQL è possibile utilizzare la modalità di Autocomposizione ricerca dati non corrispodenti per visualizzare i record privi di corrispondenza l per creare un self join occorre inserire due copie della stessa tabella nella finestra di query l per altri tipi di query conviene usare direttamente il linguaggio SQL (condizioni di Join diverse da =, interrogazioni innestate, subquery, etc..) l Basi di Dati - Access 69 Utilizzo di formule nelle query Trascinare nella griglia QBE i campi sui quali si desidera effettuare dei calcoli l fare clic sullo strumento Formule: in tal modo viene visualizzata una nuova riga denominata Formula l fare clic sul pulsante a freccia della cella Formula e selezionare una delle opzioni: l – somma – media – min – max – conteggio – etc. Basi di Dati - Access 70 Calcoli basati su gruppi di record Trascinare nella griglia QBE il campo sul quale si desidera basare il raggruppamento l selezionare l’opzione Raggruppamento nella cella Formula l se si includono diversi campi con l’opzione raggruppamento, il gruppo è definito dalla loro combinazione l Basi di Dati - Access 71 Criteri di ricerca per i campi impostati con un operatore matematico E’possibile specificare se applicare il criterio prima o dopo che è stato effettuato il calcolo l per selezionare i record in base al risultato del calcolo e’sufficiente immettere il criterio di ricerca nella cella Criteri in corrispondenza del campo sul quale si effettua il calcolo l per selezionare i record sui quali eseguire i calcoli è necessario utilizzare l’opzione Dove che agisce come filtro l Basi di Dati - Access 72 Visualizzazione de valori massimi e minimi E’possibile visualizzare i primi e gli ultimi valori tra i record, secondo un intervallo definito. l Il campo contenente i valori da utilizzare per l’ordinamento deve essere collocato nella colonna piu’a sinistra della griglia l selezionare l’ordinamento Decrescente o Crescente l nella casella Primi valori della tavola delle proprietà della query immettere un valore assoluto (ad esempio 3 per visualizzare i primi 3 valori) sia una percentuale (ad esempio 10%) l Basi di Dati - Access 73 Query per parametri Una query con parametri è una query per la quale durante l'esecuzione viene visualizzata una finestra di dialogo in cui viene richiesto di specificare il valore per i parametri (criteri). l Nella visualizzazione Struttura della query, trascinare i campi dall'elenco di campi alla griglia di struttura della query. l Nella cella Criteri, digitare una richiesta racchiusa tra parentesi quadre per ciascun campo che si desidera utilizzare come parametro (diversa dal nome del campo). l Basi di Dati - Access 74 Query a campi incrociati l Una query a campi incrociati estrae valori di riepilogo, come somme, conteggi e medie, da un campo di una tabella e li raggruppa visualizzandoli in un set di dati elencati sul lato sinistro del foglio di dati e in un altro set di dati elencato nella parte superiore del foglio di dati. Basi di Dati - Access 75 Query a campi incrociati l l l l l Fare clic sul pulsante Tipo di query sulla barra degli strumenti, quindi scegliere Campi incrociati. Fare clic sulla riga Campi incrociati, quindi su Intestazione di riga per il campo o i campi i cui valori si desidera vengano visualizzati come righe. Fare clic sulla riga Campi incrociati, quindi su Intestazione di colonna per il campo i cui valori si desidera vengano visualizzati come intestazioni di colonna. Fare clic sulla riga Campi incrociati, quindi su Valore per il campo di cui si desidera utilizzare i valori nell'incrocio dei campi. Nella riga Formula di questo campo, scegliere il tipo di funzione di aggregazione desiderato per l'incrocio dei campi, ad esempio Somma, Media o Conteggio. Basi di Dati - Access 76 Query di comando Consentono di modificare o eliminare i dati l esistono quattro diversi tipi: –query di creazione tabella –query di eliminazione –query di aggiornamento –query di accodamento l Basi di Dati - Access 77 Query di creazione tabella Scegliere tramite lo strumento Tipo di query la query di tipo Creazione tabella. Verrà visualizzata la finestra di dialogo Creazione tabella. l Nella casella Nome tabella, digitare il nome della tabella che si desidera creare o scegliere il nome della tabella che si desidera sostituire. l Scegliere Database corrente o Altro database l Trascinare i campi che si desidera inserire nella nuova tabella dall'elenco campi alla griglia di struttura della query. l Digitare i criteri nella cella Criteri dei campi che sono stati trascinati sulla griglia. l Basi di Dati - Access 78 Query di eliminazione l l l l l l Scegliere tramite lo strumento Tipo di query la query di tipo Query di eliminazione. Dalle tabelle da cui si desidera eliminare dei record, trascinare l'asterisco (*) dall'elenco campi alla griglia di struttura della query. Nella cella Elimina presente sotto questi campi viene visualizzato Da Per specificare dei criteri per l'eliminazione dei record, trascinare sulla griglia di struttura i campi sui quali si desidera impostare dei criteri. Nella cella Elimina presente sotto questi campi viene visualizzato Dove, come mostrato nell'illustrazione seguente. Digitare i criteri nella cella Criteri dei campi che sono stati trascinati sulla griglia. Basi di Dati - Access 79 Query di aggiornamento Scegliere tramite lo strumento Tipo di query la query di tipo Query di aggiornamento. l Trascinare dall'elenco campi sulla griglia di struttura della query i campi che si desidera aggiornare o per i quali si desidera specificare dei criteri. l Nella cella Criteri, specificare i criteri se necessario. l Nella cella Aggiorna a dei campi che si desidera aggiornare, digitare l'espressione o il valore che si desidera utilizzare per modificare i campi. l Basi di Dati - Access 80 Query di accodamento l l l l l l Scegliere tramite lo strumento Tipo di query la query di tipo Query di accodamento. Nella casella Nome tabella, digitare il nome della tabella alla quale si desidera accodare dei record. Scegliere Database corrente o Altro database Trascinare dall'elenco campi sulla griglia di struttura della query i campi che si desidera accodare ed i campi che si desidera utilizzare per l'impostazione dei criteri. Se i campi selezionati hanno lo stesso nome in entrambe le tabelle, in Microsoft Access viene automaticamente inserito il nome corrispondente nella riga Accoda a. Se i campi contenuti nelle due tabelle non hanno lo stesso nome, nella riga Accoda a, immettere nella tabella i nomi dei campi. Nella cella Criteri dei campi che sono stati trascinati sulla griglia, digitare i criteri in base ai quali verranno effettuate le aggiunte. Basi di Dati - Access 81 Esempio Studente (matricola, nome, cognome,note) Professore(codiceProf, nome, cognome) Esame (codiceEsame,titolo,codiceProf) FOREIGN KEY (codiceProf) REFERENCES Professore(codiceProf) EsameSostenuto (matricola, codiceEsame,voto, data) FOREIGN KEY (matricola) REFERENCES Studente(matricola) FOREIGN KEY (codiceEsame) REFERENCES Esame(codiceEsame) Basi di Dati - Access 82 Esempio: creazione tabella 1 CREATE TABLE STUDENTI ( MATRICOLA INTEGER, NOME text(30) NOT NULL, COGNOME text(30) NOT NULL, NOTE_STUDENTE memo, CONSTRAINT pk_studenti PRIMARY KEY(MATRICOLA) ); CREATE TABLE PROFESSORI ( CODICEPROF INTEGER, NOME text(30) NOT NULL, COGNOME text(30) NOT NULL, CONSTRAINT pk_professori PRIMARY KEY(CODICEPROF) ); Basi di Dati - Access 83 Esempio: creazione tabella 2 CREATE TABLE ESAMI ( CODICEESAME INTEGER, TITOLO text(30) NOT NULL, CODICEPROF INTEGER, CONSTRAINT pk_esame PRIMARY KEY(CODICEESAME), CONSTRAINT fk_esame FOREIGN KEY (CODICEPROF) REFERENCES PROFESSORI(CODICEPROF) ); Basi di Dati - Access 84 Esempio: creazione tabella 3 CREATE TABLE ESAMISOSTENUTI ( MATRICOLA INTEGER, CODICEESAME INTEGER, VOTO SMALLINT, DATAESAME DATE NOT NULL, CONSTRAINT pk_esamisostenuti PRIMARY KEY(MATRICOLA,CODICEESAME), CONSTRAINT fk_esami1 FOREIGN KEY (MATRICOLA) REFERENCES STUDENTI(MATRICOLA), CONSTRAINT fk_esami2 FOREIGN KEY (CODICEESAME) REFERENCES ESAMI(CODICEESAME) ); Basi di Dati - Access 85 Maschere basate su più tabelle Esistono tre modalità: • basare la maschere su una query • selezionare campi di diverse tabelle tramite la procedura di autocomposizione tabella • creare una sottomaschera che consente di visualizzare la relazione esistente tra i record di diverse tabelle Basi di Dati - Access 86 Sottomaschera • vengono usate soprattutto per visualizzare i record contenuti in tabelle collegate con relazioni del tipo uno a molti • è possibile crearle con la modalità di autocomposizione: – creare la maschera principale – utilizzare lo strumento Sottomaschera/Sottoreport per creare la sottomaschera sulla griglia della maschera principale Basi di Dati - Access 87 Creazione di una sottomaschera Creare la maschera principale l creare la sottomaschera l riaprire la maschera principale in visualizzazione struttura l trascinare dalla finestra di database il nome della sottomaschera sulla griglia della maschera principale l verificare che nella tavola delle proprietà della sottomaschera le proprietà Collega campi secondari e Collega campi master contengano i campi che collegamo la maschera principale e la sottomaschera l Basi di Dati - Access 88 Proprietà maschera E’possibile: l Assegnare un valore predefinito ad un controllo l Creare una regola di convalida per un controllo l Creare una maschera di input per un controllo l Disattivare un controllo in visualizzazione Maschera oppure rendere i dati di un controllo di sola lettura l Specificare se un utente può aggiungere, eliminare, modificare i record salvati con una maschera Basi di Dati - Access 89 Macro Una macro è un’istruzione che consente di eseguire automaticamente una o piú operazioni (azioni) l Le macro possono essere usate: l – ricerca dati – verifica dei dati immessi – impostare proprietá di oggetti – utilizzare piú maschere contemporaneamente – collegare maschere con report – trasferire dati – applicazioni personalizzate Basi di Dati - Access 90 Creazione di una macro l Dalla finestra macro selezionare il pulsante nuovo. La sezione Argomento azione consente di impostare gli argomenti delle azioni immesse nella colonna Azione Basi di Dati - Access 91 Le azioni Le azioni sono istruzioni che indicano quali operazioni compiere l Possono essere aggiunte in due modi l – trascinando il nome dell’oggetto dalla finestra di database in una cella della colonna Azione – fare clic su una cella della colonna Azione e selezionare un’azione dall’elenco visualizzato l Nel primo caso gli argomenti vengono impostati automaticamente, nel secondo caso è necessario impostare gli argomenti dell’azione Basi di Dati - Access 92 Esecuzione di una macro l E’possibile eseguire una macro: – dalla finestra macro tramite lo strumento Esegui – dalla finestra di database facendo doppio clic sul nome della macro o usando il bottone Esegui – da un’altra finestra selezionando Macro… dal menu Strumenti e specificando il nome della macro – all’interno di un’altra macro tramite l’azione EseguiMacro – in conseguenza di un evento che si verifica in una maschera o in un report Basi di Dati - Access 93 Macro condizionate Consente di eseguire una macro solo se si verifica una determinata condizione l Per aggiungere una consizione ad una macro: l – aprire la macro in modalitá struttura – visualizzare la colonna Condizione facendo clic sullo strumento corrispondente – digitare nella colonna Condizione in corrispondenza dell’azione che si desidera condizionare, l’espressione logica che determina la condizione – se si desidera porre un’unica condizione per diverse azioni, si immettano dei puntini di sospensione (… .) nella colonna Condizione accanto a ciascuna azione da eseguire nel caso la condizione risulti vera Basi di Dati - Access 94 Risposta ad eventi di una maschera E’possibile creare uno o più macro, le quali rispondono a particolari eventi che si possono verificare durante l’utilizzo di una maschera l Aprire la maschera in visualizzazione struttura l Visualizzare le tavole delle proprietá l Fare clic sulla proprietá relativa all’evento al quale si desidera che la macro risponda e selezionare il nome della macro oppure generare una nuova macro tramite il pulsante Genera l Basi di Dati - Access 95 Risposta agli eventi relativi ai singoli controlli Una macro puó essere collegata ai singoli controlli di una maschera. l Aprire la maschera in visualizzazione struttura l Selezionare il controllo l Aprire la tavola delle proprietá l Fare clic sulla proprietá relativa all’evento e selezionare o generare la macro l Basi di Dati - Access 96 Debug di un macro l l l l l l E’possibile controllare ogni singola azione per verificare i risultati di ciascuna (modalitá passo a passo) Aprire la finestra Macro corrispondente alla macro da controllare Fare clic sullo strumento Passo a passo Eseguire la macro utilizzando le normali procedure In tal modo viene visualizzata la finestra di dialogo Macro passo a passo che contiene la descrizione dell’azione da eseguire e tre bottoni: Passo: esegue l’azione, se l’azione non è corretta viene visualizzato un messaggio di avviso – Arresta: arresta l’esecuzione della macro – Continua: disattiva la modalitá Passo a Passo Basi di Dati - Access 97 Report Un report è una presentazione di dati, provenienti da una o più tabelle, formattata e stampata. l Può essere basato su una tabella o su una query l può essere utilizzato per una stampa dei dati, ma non per la loro immissione o modifica l Basi di Dati - Access 98 Creazione di un report Esistono tre modalità: l Creazione tramite la funzione Report Standard – formato a colonne – formato tabulare l Creazione tramite autocomposizione – selezione dei campi – livello di raggruppamento dati – tipo di ordinamento – layout e stile l Creazione report vuoto Basi di Dati - Access 99 Finestra di struttura di un report È simile a quella di una maschera l È suddiviss in sezioni: l – Intestazione report – Intestazione pagina – Intestazione nome_raggruppamento – Corpo – Piè di pagina nome_raggruppamento – Piè di pagina pagina – Piè di pagina report l il testo e i dati sono rappresentati da controlli che possono essere creati utilizzando gli strumenti corrispondenti della casella strumenti Basi di Dati - Access 100 Ordinamento e raggruppamento dei dati Si può impostare: l Tramite la procedura di autocomposizione selezionando il campo secondo il quale si desidera raggruppare i record l Direttamente nella struttura del report – fare clic sullo strumento Ordinamento e raggruppamento della barra degli strumenti – selezionare il campo su cui basare l’ordinamento o il raggruppamento – selezionare il criterio di ordinamento – se si vuole usare il campo per il raggruppamento e avere un’intestazione di gruppo modificare in Si la proprietà Intestazione (gruppo) – se si vuole usare il campo per il raggruppamento e si vuole avere un piè di pagina di gruppo, modificare in Si la proprietà Piè pagina (gruppo) Basi di Dati - Access 101 Calcoli in un report Dalla finestra si struttura inserire una casella di testo standard non associata l Per immettere un’espressione: l – digitare l’espressione nella casella iniziando con il segno uguale (=), oppure – aprire la tavola delle proprietà e digitare l’espressione nella propietà Origine controllo o utilizzare il generatore di espressioni l se si colloca il campo calcolato in una sezione relativa ad un gruppo il calcolo si riferisce al gruppo, se lo si colloca in una sezione relativa al report il calcolo si riferisce a tutti i record, se lo si colloca nella sezione Corpo, il calcolo si basa solo sul record Basi di Dati - Access 102 Aggiunta di numeri di pagina e date Si possono utilizzare: l le funzioni =Date() o =Now() =Pagina in un controllo calcolato; l utilizzare i comandi del menu Inserisci – Numeri di pagina… – Data e ora... Basi di Dati - Access 103