File - Dipartimento di Scienze Sociali ed Economiche

 anno accademico 2012 Scienze e tecniche del servizio sociale Abilità informatiche: Uso delle basi di dati Lavorare con un Data Base Database relazionali in Acces Apertura di Acces Trovare e applicare un modello Nozioni fondamentali sulla progettazione di un Data Base Terminologia di Data Base che è utile conoscere Descrizione di una progettazione di DataBase corretta Processo di progettazione Identificazione dello scopo del DataBase Individuazione e organizzazione delle informazioni Suddivisione delle informazioni nelle tabelle Trasformazioni di elementi di informazione in colonne Specifica di chiavi primarie Creazione di relazioni tra tabelle Creazione di una relazione uno-­‐a-­‐molti Creazione di una relazione molti-­‐a-­‐molti Creazione di una relazione uno-­‐a-­‐uno Ottimizzazione della progettazione Ottimizzazione della tabella prodotti Applicazione delle regole di normalizzazione Creare un Data Base partendo da zero Apertura di un Data Base di Acces esistente Utilizzare il nuovo Data Base Aggiungere una tabella Creare una tabella a partire dalla visualizzazione Struttura Creare una tabella in base a un elenco SharePoint Incollare dati da un'altra origine in una tabella di Access Importare o collegare dati da un'altra origine Utilizzo delle Query Aprire una query esistente Esaminare un sottoinsieme di dati in una tabella Esaminare dati di più tabelle contemporaneamente Richiedere variazioni di una domanda utilizzando parametri con una query Eseguire calcoli basati sui dati Esaminare dati riepilogati o aggregati Creare una query di totalizzazione per riepiloghi più complessi Creare una query a campi incrociati per aggiungere un altro livello di raggruppamento Modificare automaticamente i dati Eliminare automaticamente i dati Specificare i tipi di dati del parametro Importare dati da un foglio di calcolo o da un altro programma Importare un foglio di lavoro di Excel in Access Importare un foglio di lavoro di Excel sotto forma di tabella in un nuovo database Utilizzare la Creazione guidata Analizzatore tabelle per organizzare i dati Utilizzare dati di altri programmi Utilizzare un DataBase di una versione precedente con versioni diverse di acces Utilizzare un file di database di Access in diverse versioni di Access Utilizzare un'applicazione front-­‐end/back-­‐end in diverse versioni di Access 1 Lavorare con un Data Base Access 2010 è uno strumento per la progettazione e distribuzione di applicazioni di database che consente di registrare e tenere traccia di informazioni importanti. I dati possono essere memorizzati nel computer o pubblicati sul Web, in modo che altri utenti possano utilizzare il database in un Web browser. Molti utenti iniziano a utilizzare Access quando l'applicazione utilizzata per tenere traccia di determinati dati diventa meno adatta per i propri scopi. Si supponga ad esempio di essere un organizzatore di eventi e di voler tenere traccia di tutti i dettagli necessari per organizzare eventi di successo. Se a tale scopo si utilizza un elaboratore di testo o un foglio di calcolo, in breve tempo ci si ritroverà con dati duplicati e incoerenti. I programmi per la gestione dei calendari, molto utili per altri scopi, non consentono invece di tenere traccia delle informazioni finanziarie in modo adeguato. 1.1 Database relazionali in Acces Per tenere traccia di informazioni di questo tipo, è talvolta necessario utilizzare un database relazionale, ovvero un archivio di dati che sono stati suddivisi in insiemi di dati di dimensioni inferiori, denominati tabelle, allo scopo di eliminare la ridondanza e quindi messi in relazione tra loro sulla base di informazioni comuni, denominati campi. Un database relazionale per l'organizzazione di eventi, ad esempio, può contenere una tabella con le informazioni sui clienti, una tabella con le informazioni sui fornitori e una tabella con le informazioni sugli eventi. La tabella contenente le informazioni sugli eventi può includere un campo che consente di correlarla alla tabella dei clienti e un campo che consente di correlarla alla tabella dei fornitori. In questo modo, ad esempio, se il numero di telefono di un fornitore cambia, è sufficiente modificare tale informazione una sola volta nella tabella dei fornitori anziché in ogni evento che coinvolge il fornitore. Access è uno strumento che può essere utilizzato per sviluppare in modo semplice e rapido applicazioni di database relazionali per la gestione delle informazioni. È possibile creare un database per tenere traccia di qualsiasi tipo di informazioni, ad esempio inventario, contatti professionali o processi aziendali. Access include infatti modelli che è possibile utilizzare per tenere traccia di una vasta gamma di informazioni e che semplificano notevolmente il lavoro anche per un principiante. 1.2 Apertura di Acces All'avvio di Access 2010 viene aperta la visualizzazione Backstage di Microsoft Office in cui è possibile ottenere informazioni sul database corrente, creare un nuovo database, aprire un database esistente e visualizzare una selezione di contenuti da Office.com. La visualizzazione Backstage contiene inoltre molti altri comandi che è possibile utilizzare per modificare, gestire o condividere i database. I comandi della visualizzazione Backstage si applicano in genere a interi database e non agli oggetti all'interno di un database. È possibile passare alla visualizzazione Backstage in qualsiasi momento facendo clic sulla scheda File. 1.3 Trovare e applicare un modello In Access è disponibile un'ampia gamma di modelli che consentono di velocizzare il processo di creazione dei database. Per modello si intende un database già pronto in cui sono contenuti tutti i report, tabelle, query e maschere necessari per l'esecuzione di un'attività specifica. Sono disponibili, ad esempio, modelli che possono essere utilizzati per tenere traccia dei problemi, per gestire contatti o per registrare le spese. In alcuni modelli sono presenti alcuni record di esempio che ne dimostrano l'utilizzo. È possibile utilizzare direttamente i modelli di database disponibili oppure personalizzarli in base alle proprie esigenze. Per trovare e applicare un modello al database, eseguire le operazioni seguenti: Nella scheda File fare clic su Nuovo. In Modelli disponibili eseguire una delle seguenti operazioni: •
Per riutilizzare un modello usato di recente, fare clic su Modelli recenti e quindi selezionare il modello desiderato. •
Per utilizzare un modello già installato, fare clic su Modelli personali e quindi selezionare il modello desiderato. •
Per trovare un modello nel sito Office.com, in Modelli da Office.com fare clic su una categoria di modelli, selezionare il modello desiderato e quindi fare clic su Scarica per scaricare il modello dal sito Office.com nel computer in uso. È inoltre possibile cercare modelli nel sito Office.com da Access. Nella casella Cerca modelli in Office.com digitare uno o più termini di ricerca e quindi fare clic sul pulsante freccia per avviare la ricerca. Facoltativamente, fare clic sull'icona a forma di cartella accanto alla casella Nome file per selezionare il percorso in cui si desidera creare il database. Se non si indica un percorso specifico, il database verrà creato nel percorso predefinito visualizzato sotto la casella Nome file. Fare clic su Crea. Il database verrà creato e aperto per l'utilizzo. Di seguito uno screenshot sui vari modelli di database: 1.4 Nozioni fondamentali sulla progettazione di un Data Base Un database progettato correttamente consente l'accesso a informazioni aggiornate e accurate. Poiché una progettazione corretta è essenziale per raggiungere gli obiettivi per cui si utilizza un database, può essere utile investire il tempo necessario per apprendere i principi di una buona progettazione. In definitiva, sarà molto più probabile ottenere un database che soddisfi esigenze specifiche e che supporti facilmente le modifiche. In questo articolo vengono descritte le linee guida per la pianificazione di un database desktop. Verrà inoltre illustrato come identificare le informazioni necessarie e come suddividerle in tabelle e colonne appropriate, nonché come si imposta una correlazione fra tali tali. Prima di procedere alla creazione del primo database desktop, è consigliabile leggere il presente articolo. E’ importante sapere che: In Microsoft Access 2010 è possibile utilizzare modalità di progettazione innovative che consentono di creare applicazioni di database per il Web. Quando si progetta per il Web è necessario prendere in considerazione diversi aspetti. In questo articolo non viene descritta la progettazione di applicazioni di database Web. 1.5 Terminologia di Data Base che è utile conoscere In Access 2010 le informazioni vengono organizzate in tabelle, ovvero elenchi di righe e colonne paragonabili a un registro contabile o a un foglio di calcolo. In un semplice database può essere presente una sola tabella, ma per la maggior parte dei database ne sono necessarie più d'una. In una tabella è possibile, ad esempio, archiviare informazioni sui prodotti, in un'altra tabella le informazioni sugli ordini e in un'altra ancora le informazioni sui clienti. Ogni riga viene più correttamente definita record e ogni colonna è detta campo. Un record costituisce un modo significativo e coerente di combinare informazioni su vari elementi. Un campo è un singolo elemento di informazioni, ovvero un tipo di elemento che viene visualizzato in ogni record. Nella tabella Prodotti, ad esempio, ogni riga o record conterrà informazioni su un prodotto, mentre in ogni colonna o campo sarà incluso un qualche tipo di informazioni su tale prodotto, ad esempio il nome o il prezzo. 2 Descrizione di una progettazione di DataBase corretta Il processo di progettazione di un database si basa su determinati principi, il primo dei quali è che la presenza di informazioni duplicate, dette anche dati ridondanti, costituisce un aspetto negativo, in quanto si spreca spazio e si aumenta la probabilità di introdurre errori e incoerenze. Il secondo principio è che la correttezza e la completezza delle informazioni sono elementi importanti. Se il database contiene informazioni non corrette, anche tutti i report che recuperano informazioni da tale database conterranno informazioni non corrette. Di conseguenza, qualsiasi decisione assunta in base a tali report sarà fondata su informazioni errate. Una progettazione di database corretta consentirà pertanto di: •
•
•
•
Divider le informazioni in tabelle basate su un argomento per ridurre i dati ridondanti. Immettere in Access le informazioni necessarie per unire in join le informazioni nelle tabelle secondo le esigenze. Supportare e assicurare l'accuratezza e l'integrità delle informazioni. Soddisfare le esigenze di elaborazione dei dati e di creazione di report. 2.1 Processo di progettazione Il processo di progettazione è costituito dai passaggi seguenti: •
Determinare lo scopo del database È utile per prepararsi ai passaggi rimanenti. •
Individuare e organizzare le informazioni necessarie Raccogliere tutti i tipi di informazioni che potrebbe essere necessario registrare nel database, ad esempio nome del prodotto e numero d'ordine. •
Dividere le informazioni in tabelle Dividere gli elementi di informazioni in entità o argomenti principali, ad esempio Prodotti o Ordini. Ogni argomento diventa quindi una tabella. •
Trasformare elementi di informazioni in colonne Stabilire quali informazioni si desidera archiviare in ogni tabella. Ogni elemento diventa un campo e viene visualizzato sotto forma di colonna nella tabella. Una tabella Dipendenti potrebbe, ad esempio, includere campi quali Cognome e Data di assunzione. •
Specificare le chiavi primarie Scegliere la chiave primaria di ogni tabella. La chiave primaria è una colonna utilizzata per identificare in modo univoco ogni riga, ad esempio ID prodotto o ID ordine. •
Impostare le relazioni tra tabelle Esaminare ogni tabella e decidere in che modo i dati presenti in una tabella sono correlati ai dati in altre tabelle. Aggiungere campi alle tabelle o creare nuove tabelle per chiarire le relazioni, se necessario. •
Ottimizzare la progettazione Analizzare la progettazione per verificare se sono presenti errori. Creare le tabelle e aggiungere alcuni record di dati di esempio. Controllare se è possibile ottenere i risultati desiderati da tali tabelle. Apportare modifiche alla progettazione, se necessario. •
Applicare le regole di normalizzazione Applicare le regole di normalizzazione dei dati per verificare se le tabelle sono strutturate correttamente. Apportare modifiche alle tabelle, se necessario. 2.2 Identificazione dello scopo del DataBase È consigliabile annotare su carta lo scopo del database, ovvero qual è lo scopo, come si prevede di utilizzarlo e chi lo utilizzerà. Per un piccolo database per un'attività di piccole dimensioni, ad esempio, è possibile scrivere qualcosa di molto semplice come "Il database dei clienti contiene un elenco di informazioni sui clienti allo scopo di produrre lettere e report". Se il database è più complesso o viene utilizzato da molte persone, come accade stesso in una configurazione aziendale, lo scopo può facilmente richiedere uno o più paragrafi e dovrebbe includere l'indicazione su quando o come ogni persona utilizzerà il database. L'idea è di avere un'esposizione degli obiettivi ben sviluppata a cui sia possibile fare riferimento durante tutto il processo di progettazione. La disponibilità di tale esposizione consente di concentrarsi sugli obiettivi quando si assumono decisioni. 2.3 Individuazione e organizzazione delle informazioni Per individuare e organizzare le informazioni necessarie, iniziare da quelle esistenti. È possibile, ad esempio, che gli ordini di acquisto vengano registrati in un libro mastro o che le informazioni relative ai clienti siano annotate su moduli cartacei conservati in uno schedario. Raccogliere tali documenti ed elencare ogni tipo di informazioni rilevate, ad esempio tutte le caselle che vengono compilate in un modulo. Se non sono disponibili moduli esistenti, si supponga invece di dover progettare un modulo per la registrazione delle informazioni relative ai clienti, cercando di immaginare quali informazioni verrebbero inserite nel modulo, quali caselle compilabili sarebbe opportuno creare, identificando ognuno di questi elementi e creandone un elenco. Si supponga inoltre, ad esempio, che attualmente per l'elenco dei clienti vengano utilizzate schede. L'esame di tali schede potrebbe rivelare che su ogni scheda sono indicati il nome del cliente, l'indirizzo, la città, lo stato il codice postale e il numero di telefono. Ognuno di questi elementi rappresenta una potenziale colonna di una tabella. Non è necessario che questo elenco risulti perfetto durante la preparazione iniziale. È invece consigliabile includere nell'elenco tutti gli elementi possibili e chiedere suggerimenti a eventuali altre persone che utilizzeranno il database. L'elenco potrà essere ottimizzato in un momento successivo. È quindi opportuno considerare i tipi di report o lettere che si desidera generare dal database. Ad esempio, potrebbe essere utile creare un report sulle vendite di prodotti in cui sono visualizzate le vendite per zona oppure un report di inventario riepilogativo con i livelli di scorte dei prodotti. Potrebbe inoltre essere utile generare lettere tipo da inviare ai clienti per annunciare una vendita speciale o per offrire un bonus. Progettare il report mentalmente, immaginando quale aspetto avrà. Stabilire quali informazioni si desidera inserire nel report e aggiungerle all'elenco. Procedere allo stesso modo per la lettera tipo e per qualsiasi altro report che si prevede di creare. Pensare ai report e alle lettere che potrebbe essere utile creare consente di identificare più facilmente gli elementi richiesti nel database. Si supponga, ad esempio, di voler offrire ai clienti l'opportunità di accettare o rifiutare esplicitamente aggiornamenti periodici tramite posta elettronica e di voler stampare un elenco dei clienti che hanno accettato. Per registrare tali informazioni, aggiungere una colonna “Invio messaggio di posta elettronica” alla tabella dei clienti e impostare il campo su Sì o No per ogni cliente. Il requisito di inviare messaggi di posta elettronica ai clienti suggerisce un altro elemento da registrare. Dopo avere ricevuto la conferma che un cliente desidera ricevere messaggi di posta elettronica, si dovrà conoscere l'indirizzo di posta elettronica a cui inviarli. È quindi necessario registrare un indirizzo di posta elettronica per ogni cliente. È consigliabile creare un prototipo di ogni report o elenco di output e considerare quali elementi saranno necessari per generare il report. Ad esempio, esaminando una lettera tipo si potrebbe pensare ad alcuni particolari. Se si desidera includere una vera e propria formula di apertura, ad esempio una stringa "Sig.", "Sig.ra" o "Sig.na" iniziale, si dovrà creare un elemento per la formula di apertura. È inoltre possibile che si desideri iniziare solitamente una lettera con la formula “Egr. Sig. Macagno”, anziché “Egr. Sig. Maurizio Macagno”. Ciò suggerisce che è in genere consigliabile archiviare il cognome separatamente dal nome. Un punto chiave da ricordare è la necessità di suddividere ogni informazione nelle relative parti utili più piccole. Nel caso di un nome, per render immediatamente disponibile il cognome, è opportuno dividere il nome in due parti, Nome e Cognome. Per ordinare un report in case al cognome, ad esempio, è utile archiviare separatamente il cognome del cliente. È in genere consigliabile inserire in un campo separato le informazioni in base alle quali si desidera applicare criteri di ordinamento, ricerca e calcolo oppure creare un report. Pensare alle domande alle quali il database dovrebbe rispondere. Ad esempio, la quantità di vendite chiuse per il prodotto in primo piano durante il mese precedente, dove risiedono i clienti migliori, chi è il fornitore del prodotto più venduto. La capacità di prevedere queste domande consente di focalizzare l'attenzione su ulteriori elementi da registrare. Dopo avere raccolto queste informazioni, è possibile procedere al passaggio successivo. 2.4 Suddivisione delle informazioni nelle tabelle Per dividere le informazioni in tabelle, scegliere le entità o gli argomenti principali. Dopo avere individuato e organizzato le informazioni, ad esempio, per un database relativo alle vendite di prodotti, l'elenco preliminare potrebbe avere l'aspetto seguente: Le principali entità qui illustrate sono i prodotti, i fornitori, i clienti e gli ordini. È quindi consigliabile iniziare con queste quattro tabelle: una per le informazioni sui prodotti, una per le informazioni sui fornitori, una per le informazioni sui clienti e una per le informazioni sugli ordini. Anche se l'elenco non è completo, è un buon punto di partenza. È possibile continuare a ottimizzare questo elenco finché non si ottiene una progettazione appropriata. Quando inizialmente si esamina l'elenco di elementi preliminare, si potrebbe essere tentati di inserirli tutti in un'unica tabella, anziché le quattro illustrate nella figura precedente. Di seguito viene spiegato perché non è opportuno procedere in questo modo. Si consideri per un momento la tabella illustrata di seguito: In questo caso ogni riga contiene informazioni sia sul prodotto che sul relativo fornitore. Poiché è possibile che vengano acquistati molti prodotti dallo stesso fornitore, il nome del fornitore e le informazioni sull'indirizzo devono essere ripetute molte volte, con uno spreco di spazio su disco. La registrazione delle informazioni sul fornitore una sola volta in una tabella Fornitori distinta, è una soluzione decisamente migliore. Un secondo problema con questa progettazione si presenta quando è necessario modificare le informazioni sul fornitore. Si supponga ad esempio di dover modificare l'indirizzo del fornitore. Poiché viene visualizzato in diverse posizioni, è possibile che l'indirizzo venga modificato in una posizione che che si dimentichi accidentalmente di modificarlo in un'altra. Registrando l'indirizzo del fornitore in una sola posizione si risolve invece il problema. Quando si progetta un database, è sempre opportuno cercare di registrare ogni dato una sola volta. Se si rileva che la stessa informazione viene ripetuta in più posizioni, ad esempio l'indirizzo di un particolare fornitore, inserire tale informazione in una tabella distinta. Si supponga infine che Coho Winery fornisca un solo prodotto e che si desideri eliminare tale prodotto mantenendo il nome del fornitore e le informazioni sull'indirizzo. Non è possibile eliminare il record del prodotto senza perdere le informazioni sul fornitore. Poiché infatti ogni record contiene dati su un prodotto, nonché dati relativi a un fornitore, non è possibile eliminarne uno senza eliminare l'altro. Per mantenere separati questi dati, è necessario dividere una tabella in due: una per le informazioni sul prodotto e un'altra per le informazioni sul fornitore. In questo modo l'eliminazione di un record relativo al prodotto cancellerà solo i dati relativi a tale prodotto, non quelli relativi al fornitore. Dopo avere scelto l'argomento rappresentato da una tabella, nelle relative colonne dovranno essere archiviati solo dati su tale argomento. Nella tabella dei prodotti, ad esempio, devono essere archiviati solo dati sui prodotti. Poiché l'indirizzo del fornitore è un dato relativo al fornitore e non al prodotto, appartiene alla tabella dei fornitori. 2.5 Trasformazioni di elementi di informazione in colonne Per determinare le colonne di una tabella, è opportuno stabilire quali sono le informazioni relative all'argomento registrato nella tabella di cui è necessario tenere traccia. Per la tabella Clienti, ad esempio, Nome, Indirizzo, Città-­‐Stato-­‐CAP, Invio messaggio di posta elettronica, Formula di apertura e Posta elettronica sono un buon elenco di colonne da cui iniziare. Ogni record nella tabella contiene lo stesso set di colonne, quindi è possibile archiviare informazioni relative a Nome, Indirizzo, Città-­‐Stato-­‐CAP, Invio messaggio di posta elettronica, Formula di apertura e Posta elettronica per ogni record. La colonna Indirizzo, ad esempio, contiene l'indirizzo per quel cliente. Dopo avere determinato il set iniziale di colonne per ogni tabella, è possibile definire le colonne con ancora maggiore precisione. È consigliabile, ad esempio, archiviare il nome del cliente in due colonne distinte, nome e cognome, in modo da poter eseguire operazioni di ordinamento, ricerca e indicizzazione solo su tali colonne. In modo analogo, l'indirizzo è in effetti composto da cinque componenti distinti, ovvero indirizzo, città, provincia, CAP e paese, e anche in questo caso è consigliabile archiviarli in colonne distinte. Se si desidera eseguire un'operazione di ricerca o di ordinamento oppure applicare un filtro in base, ad esempio, alla provincia, è necessario archiviare le informazioni corrispondenti in una colonna distinta. È opportuno considerare inoltre se il database conterrà informazioni solo di origine nazionale o anche internazionale. Se si prevede, ad esempio, di archiviare indirizzi internazionali, è preferibile creare una colonna Paese anziché provincia, in modo da potervi inserire sia la provincie nazionali sia le aree di altri paese. Una colonna CAP sarà invece appropriata anche per archiviare indirizzi internazionali. Nell'elenco seguente sono ripostati alcuni suggerimenti utili per determinare quali colonne creare. Non includere dati calcolati Nella maggior parte dei casi, è consigliabile non archiviare risultati di calcoli nelle tabelle. Al contrario, è possibile fare in modo che i calcoli vengano eseguiti da Access quando si desidera visualizzare il risultato. Si supponga, ad esempio, di avere un report Prodotti ordinati in cui viene visualizzato il subtotale delle unità ordinate per ogni categoria di prodotto nel database. Non è tuttavia presente una colonna di subtotale Unità ordinate in alcuna tabella. La tabella Prodotti include invece una colonna Unità ordinate in cui sono archiviate le unità ordinate per ogni prodotto. Utilizzando questi dati, Access è in grado di calcolare il subtotale ogni volta che si stampa il report. È consigliabile non archiviare il subtotale stesso in una tabella. Archiviare le informazioni nelle relative parti logiche più piccole Si potrebbe essere tentati di creare un singolo campo per nomi e cognomi o per nomi di prodotti e relative descrizioni. Se si combina più di un tipo di informazioni in un campo, sarà difficile recuperare i dati in seguito. Cercare di scomporre le informazioni in parti logiche. Ad esempio, creare campi distinti per nome e per cognome o per nome di prodotto, categoria e descrizione. Dopo avere ottimizzato le colonne dati in ogni tabella, è possibile scegliere la relativa chiave primaria. 2.6 Specifica di chiavi primarie È consigliabile includere in ogni tabella una colonna o un set di colonne che identifichi in modo univoco ogni riga archiviata nella tabella. Si tratta spesso di un numero di identificazione univoco, ad esempio il numero ID di un dipendente o un numero di serie. Nella terminologia di database queste informazioni sono definite chiave primaria della tabella. In Access i campi chiame primaria vengono utilizzati per associare rapidamente dati da più tabelle e riunire automaticamente i dati. Se si dispone già di un identificatore univoco per una tabella, ad esempio un numero di prodotto che identifica in modo univoco ogni prodotto nel catalogo, è possibile utilizzarlo come chiave primaria della tabella, ma solo se i valori in questa colonna saranno sempre diversi per ogni record. Non è possibile utilizzare valori duplicati in una chiave primaria. Non utilizzare, ad esempio, nomi di persone come chiave primaria, poiché i nomi non sono univoci. È molto facile che due persone abbiano lo stesso nome nella stessa tabella. Una chiave primaria deve avere sempre un valore. Se il valore di una colonna può diventare a un certo punto non assegnato o sconosciuto (valore mancante), non può essere utilizzato come componente di una chiave primaria. È consigliabile scegliere sempre una chiave primaria il cui valore non venga modificato. In un database che utilizza più di una tavella, è possibile utilizzare la chiave primaria di una tabella come riferimento in altre tabelle. Se la chiave primaria viene modificata, tale modifica dovrà essere applicata anche a qualsiasi altro elemento in cui viene fatto riferimento a tale chiave. L'utilizzo di una chiave primaria non soggetta a modifiche riduce la possibilità che non sia più sincronizzata con altre tabelle che vi fanno riferimento. Spesso come chiave primaria viene utilizzato un numero univoco arbitrario. È possibile, ad esempio, assegnare a ogni ordine un numero d'ordine univoco. Poiché il solo scopo di un numero d'ordine è quello di identificare un ordine, dopo essere stato assegnato non viene mai modificato. Se non si dispone di una colonna o di un set di colonne adatte a costituire la chiave primaria, è possibile utilizzare una colonna con tipo di dati Numerazione automatica. Quando si utilizza questo tipo di dati, viene assegnato automaticamente un valore. Tale identificatore non rappresenta un dato effettivo, ovvero non contiene alcuna informazione effettiva che descriva la riga a cui è associato. L'utilizzo di questo tipo di identificatori come chiave primaria è ideale in quanto non vengono modificati. Una chiave primaria che contiene dati relativi a una riga, ad esempio un numero di telefono o il nome di un cliente, è più facilmente soggetta a modifiche, poiché i dati stessi che contiene potrebbero variare nel tempo. Una colonna impostata sul tipo di dati Numerazione automatica rappresenta spesso una chiave primaria appropriata poiché garantisce l'univocità di tutti gli ID prodotto.
In alcuni casi è possibile utilizzare due o più campi che insieme costituiscono la chiave primaria di una tabella. In una tabella Dettagli sugli ordini in cui sono memorizzate le voci d'ordine potrebbero, ad esempio, essere utilizzate come chiave primaria due colonne, ovvero ID ordine e ID prodotto. Le chiavi primarie costituite da più colonne vengono inoltre definite chiavi composte. Per il database relativo alle vendite di prodotti è possibile creare una colonna Numerazione automatica per ognuna delle tabelle utilizzate come chiave primaria: ID Prodotto per la tabella Prodotti, ID Ordine per la tabella Ordini, ID Cliente per la tabella Clienti e ID Fornitore per la tabella Fornitori. 3 Creazione di relazioni tra tabelle Dopo avere suddiviso le informazioni in tabelle, è necessario riunire di nuovo tali informazioni nei modi appropriati. Nella maschera seguente, ad esempio, sono incluse informazioni recuperate da diverse tabelle. Le informazioni nella maschera provengono dalla tabella Clienti... ...dalla tabella Dipendenti... ...dalla tabella Ordini... ...dalla tabella Prodotti... ...e dalla tabella Dettagli sugli ordini. Access è un sistema di gestione di database relazionali. In un database relazionale le informazioni vengono suddivise in tabelle distinte in base all'argomento. Le relazioni tra tabelle vengono quindi utilizzate per riunire le informazioni secondo le esigenze. 3.1 Creazione di una relazione uno-­‐a-­‐molti Si consideri l'esempio seguente, in cui il database relativo ai prodotti ordinati include le tabelle Fornitori e Prodotti. Un fornitore può fornire una quantità qualsiasi di prodotti. Di conseguenza, per qualsiasi fornitore rappresentato nella tabella Fornitori possono essere rappresentati molti prodotti nella tabella Prodotti. Tra la tabella Fornitori e la tabella Prodotti esiste pertanto una relazione uno-­‐a-­‐molti. Per rappresentare una relazione uno-­‐a-­‐molti nella progettazione del database, aggiungere la chiave primaria del lato "uno" della relazione come colonna o colonne aggiuntive alla tabella sul lato "molti" della relazione. In questo caso, ad esempio, si aggiunge la colonna ID fornitore dalla tabella fornitori alla tabella Prodotti. Il numero di ID fornitore potrà quindi essere utilizzato da Access nella tabella Prodotti per individuare il fornitore corretto per ogni prodotto. La colonna ID fornitore nella tabella Prodotti è detta chiave esterna. Una chiave esterna è un'ulteriore chiave primarie della tabella. La colonna ID fornitore nella tabella Prodotti è una chiave esterna, in quanto è anche la chiave primaria della tabella Fornitori. Per creare le basi per unire in join tabelle correlate, è necessario definire coppie di chiavi primarie e chiavi esterne. Se non si è certi delle tabelle che dovrebbero condividere una colonna comune, identificare una relazione uno-­‐a-­‐molti per assicurare che le due tabelle interessate richiedano in effetti una colonna condivisa. 3.2 Creazione di una relazione molti-­‐a-­‐molti Si consideri la relazione tra una tabella Prodotti e una tabella Ordini. Un singolo ordine può includere più prodotti, mentre un singolo prodotto può essere incluso in molti ordini. A ogni record della tabella Ordini possono pertanto corrispondere molti record della tabella Prodotti e a ogni record della tabella Prodotti possono corrispondere molti record della tabella Ordini. Questo è un tipo di relazione molti-­‐a-­‐molti, poiché a qualsiasi prodotto possono corrispondere molti ordini e a qualsiasi ordine possono corrispondere molti prodotti. Per rilevare le relazioni molti-­‐a-­‐molti tra le tabelle, è importante considerare entrambi i lati della relazione. Gli argomenti delle due tabelle, Ordini e Prodotti, sono collegati da una relazione molti-­‐a-­‐molti e ciò rappresenta un problema. Per comprendere il problema, si immagini cosa accadrebbe se si tentasse di creare la relazione tra le due tabelle aggiungendo il campo ID prodotto alla tabella Ordini. Per inserire più prodotti per ogni ordine, nella tabella Ordini deve essere presente più di un record per ordine. Si dovrebbero ripetere le informazioni relative agli ordini per ogni riga correlata a un singolo ordine, ottenendo una progettazione inefficiente che potrebbe generare dati non corretti. Lo stesso problema si verifica se si inserisce il campo ID ordine nella tabella Prodotti, poiché nella tabella Prodotti sarebbe presente più di un record per ogni prodotto. Di seguito viene descritto come risolvere il problema. Creare una terza tabella, in genere denominata tabella di collegamento, che consente di suddividere la relazione molti-­‐a-­‐molti in due relazioni uno-­‐a-­‐molti. Nella terza tabella viene inserita la chiave primaria di ognuna delle due tabelle, registrando così ogni occorrenza o istanza della relazione. Ogni record nella tabella Dettagli sugli ordini rappresenta una voce in un ordine. La chiave primaria della tabella Dettagli sugli ordini è costituita da due campi, le chiavi esterne delle tabelle Ordini e Prodotti. Non è possibile utilizzare il campo ID ordine da solo come chiave primaria per questa tabella, poiché a un ordine possono corrispondere più voci. L'ID ordine viene ripetuto per ogni voce di un ordine, di conseguenza il campo non contiene valori univoci. Non è possibile utilizzare nemmeno il campo ID prodotto da solo, in quanto un prodotto più essere presente in molti ordini diversi. Utilizzati insieme, tuttavia, i due campi generano sempre un valore univoco per ogni record. Nel database relativo alle vendite di prodotti la tabella Ordini e la tabella Prodotti non sono correlate direttamente, ma lo sono indirettamente tramite la tabella Dettagli sugli ordini. La relazione molti-­‐a-­‐molti tra ordini e prodotti è rappresentata nel database utilizzando due relazioni uno-­‐a-­‐molti: •
•
Tra la tabella Ordini e la tabella Dettagli sugli ordini è presente una relazione uno-­‐a-­‐molti. A ogni ordine può corrispondere più di una voce, ma ognuna è collegata a un solo ordine. Tra la tabella Prodotti e la tabella Dettagli sugli ordini è presente una relazione uno-­‐a-­‐
molti. A ogni prodotto possono essere associate molte voci, ma ogni voce si riferisce a un solo prodotto. Dalla tabella Dettagli sugli ordini è possibile determinare tutti i prodotti inclusi in un ordine particolare e determinare inoltre tutti gli ordini per un particolare prodotto. Dopo avere incorporato la tabella Dettagli sugli ordini, l'elenco delle tabelle e dei campi potrebbe avere un aspetto analogo al seguente: 3.3 Creazione di una relazione uno-­‐a-­‐uno Un altro tipo di relazione disponibile è la relazione uno-­‐a-­‐uno. Si supponga, ad esempio, di avere l'esigenza di registrare speciali informazioni supplementari sui prodotti, che saranno utilizzate raramente o applicabili solo a pochi prodotti. Poiché tali informazioni sono raramente necessarie e poiché la loro archiviazione nella tabella Prodotti comporterebbe la presenta di spazio vuoto per ogni prodotto a cui tali informazioni non sono applicabili, si utilizzerà una tabella distinta. In modo analogo alla tabella Prodotti, verrà utilizzato IDProdotto come chiave primaria. La relazione tra questa tabella supplementare e la tabella Prodotto costituisce una relazione uno-­‐a-­‐uno. Per ogni record nella tabella Prodotto è presente un unico record corrispondente nella tabella supplementare. Quando si identifica tale relazione, entrambe le tabelle devono condividere un campo comune. Quando si rileva l'esigenza di impostare una relazione uno-­‐a-­‐uno nel database, verificare che sia possibile inserire le informazioni dalle due tabelle in una sola. Se non si desidera effettuare questa operazione per qualsiasi motivo, ad esempio perché rimarrebbe parecchio spazio vuoto, nell'elenco seguente è illustrato come verrebbe rappresentata la relazione nella progettazione: •
•
Se le due tabelle condividono lo stesso argomento, è probabilmente possibile impostare la relazione utilizzando la stessa chiave primaria in entrambe le tabelle. Se le due tabelle includono argomenti diversi con chiavi primarie diverse, scegliere una delle due tabelle (una qualsiasi) e inserire la relativa chiave primaria nell'altra tabella come chiave esterna. La capacità di determinare le relazioni tra tabelle assicura che vengano utilizzata le tabelle e le colonne corrette. Quando è presente una relazione uno-­‐a-­‐uno o uno-­‐a-­‐molti, le tabelle interessate devono condividere una colonna o più colonne comuni. Quando è presente una relazione molti-­‐a-­‐
molti, per rappresentare la relazione è necessaria una terza tabella. 3.4 Ottimizzazione della progettazione •
•
•
•
•
•
•
•
•
•
Dopo avere definito le tabelle, i campi e le relazioni necessari, è consigliabile creare e popolare le tabelle con dati di esempio e provare a utilizzare tali informazioni, creando query, aggiungendo nuovi record e così via. In questo modo è possibile evidenziare i potenziali problemi, ad esempio, potrebbe essere necessario aggiungere una colonna che si è dimenticato di inserire durante la fase di progettazione oppure dividere una tabella per rimuovere la duplicazione. Verificare se è possibile utilizzare il database per ottenere le risposte desiderate. Creare bozze di maschere e report e verificare se vengono visualizzati i dati previsti. Cercare le eventuali inutili duplicazioni dei dati e, se vengono trovate, modificare la progettazione per eliminarle. Mentre si prova a utilizzare il database iniziale, si scopriranno con tutta probabilità aree soggette a miglioramento. Di seguito sono elencati alcuni aspetti da verificare: Verificare se sono state dimenticate colonne. In tal caso controllare se le informazioni sono presenti nelle tabelle esistenti. Se si tratta di informazioni relative ad altri argomenti, potrebbe essere necessario creare un'altra tabella. Creare una colonna per ogni elemento di informazioni di cui è necessario tenere traccia. Se non è possibile calcolare le informazioni da altre colonne, è probabile che sia necessario creare una nuova colonna a tale scopo. Stabilire se sono presenti colonne non necessarie, poiché possono essere calcolate da campi esistenti. Se un elemento di informazioni può essere calcolato da altre colonne esistenti, ad esempio un prezzo scontato calcolato dal prezzo al dettaglio, è in genere preferibile procedere in tal modo, evitando di creare nuove colonne. Verificare se vengono immesse ripetutamente informazioni duplicate in una delle tabelle. In tal caso è probabilmente necessario dividere la tabella in due tabelle con una relazione uno-­‐a-­‐molti. Verificare se nelle tabelle sono presenti molti campi, un numero limitato di record e molti campi vuoti nei singoli record. In tal caso, considerare la possibilità di riprogettare la tabella in modo che contenga meno campi e record. Verificare se ogni elemento di informazioni è stato suddiviso in parti utili più piccole. Se è necessario creare report oppure applicare criteri di ordinamento o eseguire ricerche o calcoli su un elemento di informazioni, inserire tale elemento in una colonna corrispondente. Verificare se ogni colonna contiene dati relativi all'argomento della tabella. Se una colonna non contiene informazioni sull'argomento di una tabella, appartiene a una tabella diversa. Verificare che tutte le relazioni tra tabelle siano rappresentate da campi comuni o da una terza tabella. Le relazioni uno-­‐a-­‐uno e uno-­‐a-­‐molti-­‐ richiedono colonne comuni. Le relazioni molti a molti richiedono una terza tabella. 3.5 Ottimizzazione della tabella prodotti Si supponga che ogni prodotto nel database relativo alle vendite di prodotti rientri in una categoria generale, ad esempio Bevande, Condimenti o Pesce. Nella tabella Prodotti è possibile inserire un campo che visualizzi la categoria per ogni prodotto. Si supponga che dopo avere esaminato e ottimizzato la progettazione del database si decida si archiviare una descrizione della categoria insieme al relativo nome. Se si aggiunge un campo Descrizione categoria alla tabella Prodotti, sarà necessario ripetere ogni descrizione di categoria per ogni prodotto che rientra in tale categoria, una soluzione non certo ottimale. Una soluzione migliore consiste nell'impostare Categorie come nuovo argomento di cui tenere traccia nel database, con una tabella e una chiave primaria personalizzate. Sarà quindi possibile aggiungere la chiave primaria dalla tabella Categorie alla tabella Prodotti come chiave esterna. Le tabelle Categorie e Prodotti sono collegate mediante una relazione uno-­‐a-­‐molti, infatti una categoria può includere più prodotti, ma un prodotto può appartenere a una sola categoria. Quando si esaminano le strutture delle tabelle, prestare attenzione agli eventuali gruppi ripetuti. Si consideri ad esempio una tabella contenente le colonne seguenti: •
•
•
•
•
•
•
•
ID prodotto Nome ID Prodotto1 Nome1 ID prodotto2 Nome2 ID prodotto3 Nome3 Ogni prodotto è un gruppo ripetuto di colonne che differiscono dalle altre solo aggiungendo un numero alla fine del nome della colonna. Se si osservano colonne con questa numerazione, è consigliabile rivedere la progettazione. Tale progettazione presenta diversi difetti. Innanzitutto, impone la definizione di un limite massimo al numero di prodotti e, quando si supera tale limite, diventa necessario aggiungere un nuovo gruppo di colonne alla struttura della tabella e ciò implica un'attività amministrativa importante. Un altro problema è dovuto al fatto che per i fornitori con un una quantità di prodotti inferiore al numero massimo viene sprecato spazio, in quanto le colonne aggiuntive saranno vuote. Il difetto più grave di tale progettazione è che rende difficile l'esecuzione di molte attività, ad esempio l'ordinamento o l'indicizzazione della tabella per ID prodotto o per nome. Ogni volta che si rilevano gruppi ripetuti, è consigliabile rivedere attentamente la progettazione considerando la possibilità di dividere la tabella in due. Nell'esempio precedente è preferibile utilizzare due tabelle, una per i fornitori e una per i prodotti, collegate mediante l'ID fornitore. 3.6 Applicazione delle regole di normalizzazione Come passaggio successivo del processo di progettazione, è possibile applicare regole di normalizzazione dei dati, dette a volte semplicemente regole di normalizzazione, che consentono di verificare se le tabelle sono strutturate correttamente. Il processo di applicazione delle regole alla progettazione del database è detto normalizzazione del database o solo normalizzazione. La normalizzazione risulta utile soprattutto dopo che sono stati rappresentati tutti gli elementi di informazioni e avere creato la progettazione preliminare. Consente di verificare che gli elementi di informazioni siano stati suddivisi nelle tabelle appropriate, ma non può invece assicurare che siano stati inseriti tutti gli elementi di dati corretti con cui iniziare. Applicare le regole in successione, verificando a ogni passaggio che la progettazione raggiunga una di quelle che vengono definite "forme normali". In genere vengono ampiamente accettate cinque forme normali, dalla prima alla quinta. In questo articolo vengono considerate solo le prime tre, in quanto rappresentano i requisiti necessari per la maggior parte delle progettazioni di database. Prima forma normale La prima forma normale specifica che a ogni intersezione di riga e colonna nella tabelle è presente un singolo valore e mai un elenco di valori. Ad esempio non è possibile avere un campo denominato Prezzo con cui siano presenti più prezzi. Se si considera ogni intersezione di riga e colonna come una cella, ogni cella può contenere un solo valore. Seconda forma normale La seconda forma normale richiede che ogni colonna non chiave sia completamente dipendente dall'intera chiave primaria e non solo da una parte di tale chiave. Questa regola viene applicata quando si dispone di una chiave primaria composta da più di una colonna. Si supponga ad esempio di avere una tabella contenente le colonne seguenti, dove ID ordine o ID prodotto costituisce la chiave primaria: •
•
•
ID ordine (chiave primaria) ID prodotto (chiave primaria) Nome prodotto Questa progettazione viola la seconda forma normale, in quanto Nome prodotto è dipendente da ID prodotto ma non da ID ordine, quindi non è dipendente dall'intera chiave primaria. È necessario rimuovere Nome prodotto dalla tabella, in quanto appartiene a un'altra tabella (Prodotti). Terza forma normale La terza forma normale richiede non solo che ogni colonna non chiave sia dipendente dall'intera chiave primaria, ma che le colonne non chiave siano indipendenti le une dalle altre. In altre parole, ogni colonna non chiave deve essere dipendente dalla chiave primaria ed esclusivamente dalla chiave primaria. Si supponga ad esempio di avere una tabella che contiene le colonne seguenti: •
•
•
•
ID Prodotto (chiave primaria) Nome PDC Sconto Si supponga che la colonna Sconto dipenda dal prezzo al dettaglio consigliato (PDC). Questa tabella viola la terza forma normale poiché una colonna non chiave, Sconto, dipende da un'altra colonna non chiave, PDC. Indipendenza delle colonne significa che deve essere possibile modificare qualsiasi colonna non chiave senza influire su qualsiasi altra colonna. Se si modifica un valore nel campo PDC, il valore di Sconto verrebbe modificato di conseguenza, violando in tal modo la regola. In questo caso è necessario spostare la colonna Sconto in un'altra tabella la cui chiave primaria è basata sulla colonna PDC. 4 Creare un Data Base partendo da zero Per creare un nuovo database, eseguire le operazioni seguenti: Avviare Access. Nella scheda Nuovo della visualizzazione Backstage fare clic su Database vuoto o Database Web vuoto. L'opzione selezionata in questa scheda determinerà le caratteristiche disponibili nel database. I database desktop non possono essere pubblicati sul Web, mentre i database Web non supportano alcune caratteristiche desktop, ad esempio le query di totalizzazione. Sulla destra digitare un nome per il database nella casella Nome file. Per cambiare il percorso in cui creare il file, fare clic su Sfoglia accanto alla casella Nome file, individuare e selezionare il nuovo percorso e quindi fare clic su OK. Fare clic su Crea. Verrà creato il database e quindi verrà aperta una tabella vuota, denominata Tabella1, in visualizzazione Foglio dati. Il cursore sarà posizionato nella prima cella vuota della colonna Fare clic per aggiungere della nuova tabella. Per aggiungere dati, iniziare a digitarli oppure incollarli da un'altra origine, come descritto nella sezione Incollare dati da un'altra origine in una tabella di Access di seguito in questo articolo. •
L'immissione di dati in visualizzazione Foglio dati è analoga all'immissione di dati in un foglio di lavoro di Excel. La limitazione principale è costituita dalla necessità di immettere i dati in righe e colonne contigue, a partire dall'angolo superiore sinistro del foglio dati. A differenza di quanto è possibile eseguire in un foglio di lavoro di Excel, in questo caso è consigliabile non inserire righe o colonne vuote per formattare i dati, poiché questa operazione provocherebbe uno spreco di spazio nella tabella, destinata unicamente a contenere i dati. Tutte le presentazioni grafiche dei dati verranno realizzate tramite le maschere e i report report progettati successivamente. •
La struttura della tabella viene creata durante l'immissione dei dati. Ogni volta che una nuova colonna viene aggiunta nel foglio dati, viene definito un nuovo campo nella tabella. Access imposta il tipo di dati del campo in base al tipo di dati immessi. Se in una colonna vengono immessi solo valori relativi a una data, ad esempio, il tipo di dati del campo specifico verrà impostato su Data/ora. Se successivamente si tenta di immettere nel campo un valore diverso da una data, ad esempio un nome o un numero telefonico, verrà visualizzato un messaggio in cui viene indicato che il valore non corrisponde al tipo di dati della colonna. È consigliabile pertanto organizzare la tabella in modo che in ogni colonna sia contenuto lo stesso tipo di dati, indipendentemente dal fatto che si tratti di testo, date, numeri o altri tipi di dati. Ciò consente di semplificare la creazione di query, maschere e report in grado di selezionare esattamente i dati desiderati. Se non si desidera ancora immettere dati, fare clic su Chiudi . 4.1 Apertura di un Data Base di Acces esistente Per aprire rapidamente uno degli ultimi database aperti, nella scheda File fare clic su Recente e quindi sul nome di file del database desiderato. 1. Nella scheda File fare clic su Apri. 2. Nella finestra di dialogo Apri fare clic su un collegamento oppure nella casella Cerca in fare clic sull'unità o sulla cartella in cui si trova il database desiderato. 3. Nell'elenco delle cartelle fare doppio clic sulle cartelle fino all'apertura della cartella in cui si trova il database. 4. Dopo aver individuato il database, eseguire una delle operazioni seguenti: • Per aprire il database in modalità di apertura predefinita, fare doppio clic sul database stesso. • Per aprire il database per l'accesso condiviso in un ambiente multiutente in modo che tutti gli utenti possano leggere e scrivere nel database contemporaneamente, fare clic su Apri. • Per aprire il database con accesso in sola lettura in modo che sia possibile visualizzarlo ma non modificarlo, fare clic sulla freccia accanto al pulsante Apri e quindi su Apri in sola lettura. • Per aprire il database per l'accesso esclusivo in modo che non possa essere aperto da altri utenti contemporaneamente, fare clic sulla freccia accanto al pulsante Apri e quindi su Apertura esclusiva. • Per aprire il database per l'accesso in sola lettura, fare clic sulla freccia accanto al pulsante Apri e quindi fare clic su Apri in sola lettura con accesso esclusivo. Gli altri utenti potranno comunque aprire il database, ma solo con accesso in sola lettura. Se non è possibile trovare il database desiderato 1. Nella finestra di dialogo Apri fare clic sul collegamento Risorse del computer oppure nella casella Cerca in fare clic su Risorse del computer. 2. Nell'elenco delle unità fare clic con il pulsante destro del mouse sull'unità che si ritiene contenga il database e quindi scegliere Cerca. 3. Immettere i criteri di ricerca e quindi premere INVIO per eseguire la ricerca del database. 4. Se il database viene individuato, per aprirlo fare doppio clic sul database nella finestra di dialogo Risultati ricerca. Poiché la ricerca è stata avviata dalla finestra di dialogo Apri, è necessario fare clic su Annulla nella stessa finestra affinché il database venga aperto. È possibile aprire un file di dati direttamente in un formato di file esterno, quale dBASE, Paradox, Microsoft Exchange o Microsoft Excel. È inoltre possibile aprire direttamente qualsiasi origine dati ODBC, ad esempio Microsoft SQL Server o Microsoft FoxPro. Verrà creato automaticamente un nuovo database di Access nella stessa cartella del file di dati e verranno aggiunti collegamenti a ogni tabella del database esterno. 4.2 Utilizzare il nuovo Data Base A seconda del modello utilizzato, potrebbe essere necessario eseguire una o più delle operazioni seguenti per iniziare a utilizzare il nuovo database: •
Se in Access viene visualizzata una finestra di dialogo Accesso con un elenco vuoto di utenti, utilizzare la procedura seguente per iniziare: 1.
2.
3.
4.
Fare clic su Nuovo utente. Compilare la maschera Dettagli utente. Fare clic su Salva e chiudi. Selezionare il nome dell'utente appena immesso e quindi fare clic su Accesso. •
Se in Access viene visualizzato un foglio dati vuoto, è possibile iniziare a digitare i dati direttamente in tale foglio dati oppure fare clic su altri pulsanti e schede per esplorare il database. •
Se in Access viene visualizzata la pagina Riquadro attività iniziale, è possibile fare clic sui collegamenti presenti nella pagina per visualizzare ulteriori informazioni sul database oppure fare clic su altri pulsanti e schede per esplorare il database. •
Se nella barra dei messaggi di Access viene visualizzato un messaggio Avviso di sicurezza e il modello proviene da una fonte attendibile, fare clic su Abilita contenuto. Se il database richiede l'accesso, sarà necessario effettuare di nuovo l'accesso. Per i database desktop e Web si può inoltre iniziare con uno dei passaggi seguenti: 4.3 Aggiungere una tabella È possibile aggiungere una nuova tabella a un database esistente utilizzando gli strumenti disponibili nel gruppo Tabelle della scheda Crea. Nel gruppo Tabelle è disponibile solo il comando Tabella per un database Web. Indipendentemente dalla visualizzazione selezionata inizialmente, è sempre possibile passare all'altra mediante i pulsanti delle visualizzazioni disponibili nella barra di stato della finestra di Access. Creare una tabella vuota nella visualizzazione Foglio dati In visualizzazione Foglio dati è possibile immettere i dati immediatamente. La struttura della tabella viene creata automaticamente da Access. I nomi di campo vengono assegnati in ordine numerico (Campo1, Campo2 e così via) e i tipi di dati di un campo vengono impostati in base al tipo di dati immessi. 1. Nel gruppo Tabelle della scheda Crea fare clic su Tabella . 2. Dopo che la tabella è stata creata, il cursore viene posizionato nella prima cella vuota della colonna Fare clic per aggiungere. 3. Per aggiungere dati, digitarli nella prima cella vuota oppure incollarli da un'altra origine, come descritto più avanti in questo articolo. •
Per rinominare una colonna (campo), fare doppio clic sull'intestazione di colonna e quindi digitare il nuovo nome. Assegnare un nome significativo a ogni campo, in modo che sia possibile riconoscerne il contenuto senza esaminare i dati. •
Per spostare una colonna, fare clic sulla relativa intestazione per selezionarla e quindi trascinarla nella posizione desiderata. È inoltre possibile selezionare più colonne contigue e trascinarle tutte insieme nella nuova posizione. Per aggiungere altri campi alla tabella, è possibile iniziare a digitare nella colonna Fare clic per aggiungere della visualizzazione Foglio dati oppure aggiungere nuovi campi utilizzando i comandi disponibili nel gruppo Aggiungi ed elimina della scheda Campi. 4.4 Creare una tabella a partire dalla visualizzazione Struttura In visualizzazione Struttura viene creata innanzitutto la struttura della nuova tabella. Per immettere i dati, è necessario passare alla visualizzazione Foglio dati oppure utilizzare altri metodi, ad esempio una maschera. La visualizzazione Struttura non è disponibile per le tabelle di un database Web. 1. Nel gruppo Tabelle della scheda Crea fare clic su Struttura tabella . 2. Per ogni campo incluso nella tabella, digitare un nome nella colonna Nome campo e quindi selezionare il tipo di dati nell'elenco Tipo dati. 3. È possibile immettere ulteriori informazioni per ogni campo nella colonna Descrizione. La descrizione immessa viene visualizzata nella barra di stato quando il punto di inserimento si trova nel campo specifico e viene utilizzata come testo della barra di stato per tutti i controlli creati trascinando il campo dal riquadro Elenco campi in una maschera o un report e per tutti i controlli creati per il campo specifico mediante la Creazione guidata Maschera o la Creazione guidata Report. •
•
Dopo aver aggiunto tutti i campi desiderati, salvare la tabella: Nella scheda File fare clic su Salva Per immettere dati nella tabella, passare alla visualizzazione Foglio dati, fare clic sulla prima cella vuota e digitare i dati. È inoltre possibile incollare i dati da un'altra origine, come descritto nella sezione successiva. 4.5 Creare una tabella in base a un elenco SharePoint Un elenco SharePoint consente di utilizzare i dati anche a utenti che non dispongono di Access. I dati dell'elenco vengono inoltre memorizzati in un server e risultano pertanto maggiormente protetti da possibili perdite rispetto ai file memorizzati in un computer desktop. È possibile iniziare con un nuovo elenco oppure collegarsi a un elenco esistente. È comunque necessario disporre di autorizzazioni sufficienti nel sito di SharePoint in cui si desidera creare l'elenco. Poiché tali autorizzazioni possono variare in base al sito, è necessario contattare l'amministratore di SharePoint per ottenere informazioni dettagliate sulle opzioni disponibili. Questa caratteristica non è disponibile in un database Web. 1. Nel gruppo Tabelle della scheda Crea fare clic su Elenchi SharePoint. 2. È possibile utilizzare uno dei modelli di elenco disponibili per creare un elenco SharePoint standard, ad esempio Contatti o Eventi. È inoltre possibile scegliere di creare un elenco personalizzato oppure di importare o collegare un elenco esistente. Fare clic sull'opzione desiderata. 3. Se si seleziona uno dei modelli di elenco oppure si sceglie di creare un elenco personalizzato, verrà visualizzata la finestra di dialogo Crea nuovo elenco per completare il processo in modo guidato. Se si sceglie di utilizzare un elenco esistente, verrà aperta la finestra di dialogo Carica dati esterni. 4.6 Incollare dati da un'altra origine in una tabella di Access Se i dati sono attualmente memorizzati in un altro programma, ad esempio Excel, è possibile copiarli e incollarli in una tabella di Access. Questa operazione genera di solito risultati più accurati se i dati sono già separati in colonne, come nei fogli di lavoro di Excel. Se i dati si trovano in un programma di elaborazione testi, è preferibile separare le colonne di dati utilizzando caratteri di tabulazione oppure convertirli in una tabella nel programma di elaborazione testi prima di procedere alla copia. Se è necessario elaborare o modificare i dati, ad esempio per suddividere i nomi completi in nomi e cognomi, potrebbe essere necessario apportare le modifiche desiderate prima di copiare i dati, soprattutto se non si ha familiarità con Access. Quando si incollano dati in una tabella vuota, il tipo di dati di ogni campo viene impostato automaticamente in base al tipo di dati copiati nel campo. Se, ad esempio, in un campo vengono incollate solo date, verrà applicato il tipo di dati Data/ora. Se invece il campo in cui sono stati incollati i dati contiene solo le parole "sì" e "no", verrà applicato il tipo di dati Sì/No. Ai campi viene attribuito un nome in base al contenuto della prima riga dei dati incollati. Se la prima riga dei dati incollati è simile alle righe successive, Access determinerà che la prima riga fa parte dei dati e assegnerà ai campi nomi generici (Campo1, Campo2 e così via). Se invece la prima riga dei dati incollati non è simile alle righe successive, Access utilizzerà la prima riga per definire i nomi di campo e la escluderà dai dati effettivi. Se vengono assegnati nomi generici ai campi, è consigliabile rinominare questi ultimi appena possibile per evitare confusione. Utilizzare la procedura seguente: •
•
•
Fare clic su Salva nella scheda File per salvare la tabella. In visualizzazione Foglio dati fare doppio clic su ogni intestazione di colonna e quindi digitare un nome per la colonna. Salvare di nuovo la tabella. 4.7 Importare o collegare dati da un'altra origine È possibile che si desideri utilizzare in Access dati raccolti o memorizzati in un altro programma. È inoltre possibile che si utilizzino dati di origini diverse e che si desideri importarli tutti in una posizione centralizzata per poterli analizzare in dettaglio. Access consente di importare o collegare facilmente dati da altre applicazioni. È ad esempio possibile importare dati da un foglio di lavoro di Excel, da una tabella in un altro database di Access, da un elenco SharePoint o da un'ampia gamma di origini diverse. Sebbene il processo di importazione sia leggermente diverso in base all'origine dati, le istruzioni indicate di seguito consentono di eseguirne le operazioni iniziali. 1. Nel gruppo Importa e collega della scheda Dati esterni fare clic sul comando relativo al tipo di file da cui si stanno importando i dati. Se si importano dati da un foglio di lavoro di Excel, ad esempio, fare clic su Excel. Se non viene visualizzato il tipo di programma appropriato, fare clic su Altro.Se nel gruppo Importa e collega non è disponibile il tipo di formato appropriato, potrebbe essere necessario avviare il programma in cui sono stati creati i dati e quindi utilizzare tale programma per salvare i dati in un formato di file supportato da Access, ad esempio un file di testo delimitato, prima di importare o collegare i dati. 2. Nella finestra di dialogo Carica dati esterni fare clic su Sfoglia per selezionare il file di dati di origine oppure digitare il percorso completo del file di dati di origine nella casella Nome file. 3. Fare clic sull'opzione desiderata in Specificare la modalità e il percorso di memorizzazione dei dati nel database corrente. Per creare una nuova tabella, è possibile utilizzare i dati importati o creare una tabella collegata che utilizza un collegamento all'origine dati. 4. 5. Fare clic su OK. A seconda dell'opzione selezionata, verrà visualizzata la finestra di dialogo Collega oggetti o Importa oggetti. 5. Utilizzare la finestra di dialogo per completare il processo. Le operazioni da eseguire dipendono dalle opzioni di importazione o di collegamento scelte. 6. Nell'ultima finestra della procedura guidata fare clic su Fine. Se si è scelto di eseguire l'importazione, verrà richiesto se si desidera salvare i dettagli relativi all'operazione di importazione completata. 7. Se si prevede di dover ripetere la stessa operazione di importazione in futuro, fare clic su Salva passaggi importazione e quindi specificare i dettagli. In questo modo sarà possibile ripetere in modo semplice l'operazione di importazione facendo clic su Importazioni salvate nel gruppo Importa della scheda Dati esterni, facendo clic sulle specifiche di importazione e quindi su Esegui. 8. Se non si desidera salvare i dettagli dell'operazione, fare clic su Chiudi. I dati verranno importati automaticamente in una nuova tabella, che verrà successivamente visualizzata in Tabelle nel riquadro di spostamento. Per ulteriori informazioni sull'importazione di dati in Access, fare clic sui collegamenti disponibili nella sezione Vedere anche di questo articolo. 5 Utilizzo delle Query I restanti passaggi del processo di progettazione variano in base agli obiettivi dell'utente, tuttavia è probabile che si desideri creare query, maschere, report e macro. In questo articolo non sono incluse informazioni sulla creazione di altri oggetti di database. Per esaminare, aggiungere, modificare o eliminare dati dal database, è consigliabile utilizzare una query. Una query consente di ottenere risposte a domande molto specifiche sui dati che sarebbe difficile ottenere esaminando direttamente i dati della tabella. È possibile utilizzare le query per filtrare i dati, eseguire calcoli e riepilogare i dati, nonché per automatizzare molte attività di gestione dei dati ed esaminare le modifiche apportate ai dati prima di confermarle. Le funzioni di query di aggregazione, ad esempio Sum o Count, non sono disponibili nelle query Web. Una query è una richiesta di risultati dei dati, di azione sui dati o entrambe. È possibile utilizzare una query per rispondere a una semplice domanda, eseguire calcoli, combinare dati da diverse tabelle oppure aggiungere, modificare o eliminare dati delle tabelle. Le query utilizzate per recuperare dati da una tabella o eseguire calcoli sono dette query di selezione. Le query utilizzate per aggiungere, modificare o eliminare dati sono dette query di comando. In questo articolo vengono fornite informazioni di base sulle query, oltre ad esempi dei diversi tipi di query. Per ulteriori informazioni su ogni tipo di query, vedere la Guida o fare clic sui collegamenti disponibili nella sezione Vedere anche di questo articolo. È inoltre possibile utilizzare una query per fornire dati per una maschera o un report. In un database ben strutturato i dati che si desidera presentare utilizzando una maschera o un report si trovano spesso in diverse tabelle. Con una query è possibile assemblare i dati che si desidera utilizzare prima di progettare la maschera o il report. 5.1 Aprire una query esistente Se non si ha familiarità con il riquadro di spostamento, è possibile che non si sappia come aprire una query già esistente. Il riquadro di spostamento è una caratteristica che sostituisce la finestra del database presente nelle versioni precedenti ad Access 2007. Il riquadro di spostamento è visualizzato lungo il lato sinistro dello schermo. Per aprire un qualsiasi oggetto di database, inclusa una query, è possibile fare doppio clic sull'oggetto nel riquadro di spostamento. 5.2 Esaminare un sottoinsieme di dati in una tabella In alcuni casi può essere utile esaminare tutti i dati da una tabella, mentre in altri può essere utile esaminare solo i dati di campi specifici o i dati di certi campi che rispondono a determinati criteri. Per esaminare alcuni dati di una tabella, è necessario utilizzare una query di selezione. Si supponga di voler esaminare un elenco di prodotti e i relativi prezzi. È possibile creare una query che restituisca informazioni sui prodotti e sui prezzi eseguendo le operazioni seguenti: 1.
2.
3.
4.
5.
Aprire il database di esempio Northwind configurato tramite questa procedura. Nel gruppo Macro e codice della scheda Crea fare clic su Struttura query. Nella finestra di dialogo Mostra tabella fare doppio clic su Prodotti nella scheda Tabelle. Chiudere la finestra di dialogo Mostra tabella. Nella tabella Prodotti fare doppio clic su Nome prodotto e su Prezzo di listino per aggiungere questi campi alla griglia di struttura della query. 6. Nel gruppo Risultati della scheda Struttura fare clic su Esegui. La query verrà eseguita e verrà visualizzato un elenco di prodotti e prezzi. 5.3 Esaminare dati di più tabelle contemporaneamente Tra le tabelle di un database ben strutturato sono presenti relazioni logiche basate sui campi comuni delle tabelle stesse. Per esaminare i dati di tabelle correlate, viene utilizzata una query di selezione. Si supponga di voler esaminare gli ordini per i clienti residenti in una determinata città. I dati sugli ordini e sui clienti sono memorizzati in due tabelle dello stesso database. In ogni tabella è presente un campo ID cliente, che costituisce la base di una relazione uno-­‐a-­‐molti tra le due tabelle. È possibile creare una query che restituisca gli ordini per i clienti di una determinata città eseguendo le operazioni seguenti: 1.
2.
3.
4.
Aprire il database di esempio Northwind configurato tramite questa procedura. Nel gruppo Macro e codice della scheda Crea fare clic su Struttura query. Nella finestra di dialogo Mostra tabella fare doppio clic su Prodotti e Ordini nella scheda Tabelle. Chiudere la finestra di dialogo Mostra tabella. Osservare la linea, detta join, che connette il campo ID nella tabella Clienti e il campo ID cliente nella tabella Ordini. Questa linea indica la relazione tra le due tabelle. 5. Nella tabella Clienti fare doppio clic su Società e Città per aggiungere questi campi alla griglia di struttura della query. 6. Nella colonna Città della griglia di struttura della query deselezionare la casella di controllo nella riga Mostra. 7. Nella riga Criteri della colonna Città digitare Bologna. Deselezionando la casella di controllo Mostra si evita che nei risultati della query sia visualizzata la città, mentre digitando Bologna nella riga Criteri si indica che si desidera visualizzare solo i record in cui il valore del campo Città è Bologna. In questo caso la query restituirà solo i clienti residenti a Bologna, la Società L e la Società AA. Non è necessario visualizzare un campo per utilizzarlo con un criterio. 8. Nella tabella Ordini fare doppio clic su ID ordine e Data ordine per aggiungere questi campi alle due colonne successive della griglia di struttura della query. 9. Nel gruppo Risultati della scheda Struttura fare clic su Esegui. La query verrà eseguita e quindi verrà visualizzato un elenco degli ordini per i clienti di Bologna. 10. Premere MAIUSC+F12 per salvare la query. Verrà visualizzata la finestra di dialogo Salva con nome. 11. Nella casella Nome query digitare Ordini per città e fare clic su OK. 5.4 Richiedere variazioni di una domanda utilizzando parametri con una query A volte può essere utile eseguire una query solo leggermente diversa da una query esistente. È possibile modificare la query originale in modo da utilizzare il nuovo criterio, ma se si desidera eseguire frequentemente variazioni di una particolare query, è consigliabile utilizzare una query con parametri. Quando si esegue questo tipo di query, verrà chiesto di specificare i valori di campo che verranno utilizzati per creare i criteri per la query. Nell'esempio precedente è stata creata una query che restituisce gli ordini per i clienti residenti a Bologna. È possibile eseguire le operazioni seguenti per modificare la query in modo che venga chiesto di specificare la città ogni volta che si esegue la query: 1. Aprire il database di esempio Northwind configurato tramite questa procedura. 2. Fare clic su Barra di ridimensionamento per visualizzare il riquadro di spostamento. Questo passaggio non è necessario se il riquadro di spostamento è già visualizzato. 3. Nel riquadro di spostamento fare clic con il pulsante destro del mouse sulla query denominata Ordini per città creata nella sezione precedente e quindi scegliere Visualizzazione Struttura dal menu di scelta rapida. 4. Nella riga Criteri della colonna Città nella griglia di struttura della query eliminare Bologna e quindi digitare [Per quale città?]. La stringa[Per quale città?] costituisce la richiesta di parametro. Le parentesi quadre indicano che durante l'esecuzione della query è richiesto l'input dell'utente, mentre il testo, in questo caso Per quale città?, corrisponde alla domanda visualizzata nella richiesta di parametro. Nel testo di una richiesta di parametro non è possibile utilizzare punti (.) o punti esclamativi (!). 5. Selezionare la casella di controllo nella riga Mostra della colonna Città, in modo che nei risultati della query venga visualizzata la città. 6. Nel gruppo Risultati della scheda Struttura fare clic su Esegui. Durante l'esecuzione della query verrà chiesto di immettere un valore per Città. 7. Digitare Reggio Emilia e quindi premere INVIO. La query verrà eseguita e quindi verranno visualizzati gli ordini per i clienti di Reggio Emilia. Se tuttavia non si conoscono i valori che è possibile specificare, per rendere più flessibile il parametro è possibile utilizzare caratteri jolly nella richiesta. 8. Nel gruppo Visualizzazioni della scheda Home fare clic su Visualizza e quindi su Visualizzazione Struttura. 9. Nella riga Criteri della colonna Città nella griglia di struttura della query digitare Like [Per quale città?]&"*". In questa richiesta di parametri la parola chiave Like, la e commerciale (&) e l'asterisco (*) racchiusi tra virgolette consentono all'utente di digitare una combinazione di caratteri, inclusi i caratteri jolly, per restituire diversi risultati. Se ad esempio si digita *, la query restituirà tutte le città, se si digita B, la query restituirà tutte le città il cui nome inizia con la lettera "B", mentre se si digita *o*, verranno restituite tutte le città il cui nome contiene la lettera "o". 10. Nel gruppo Risultati della scheda Struttura fare clic su Esegui. Alla richiesta della query digitare Reggio e quindi premere INVIO. 11. La query verrà eseguita e quindi verranno visualizzati gli ordini per i clienti di Reggio Emilia. 6 Eseguire calcoli basati sui dati Le tabelle non vengono quasi mai utilizzate per memorizzare valori calcolati basati sui dati contenuti nello stesso database. Ad esempio, nella tabella Dettagli sugli ordini in Northwind 2007 non sono memorizzati i subtotali dei prodotti, poiché il subtotale per qualsiasi prodotto specifico viene calcolato utilizzando i dati memorizzati nei campi Quantità, Prezzo unitario e Sconto della tabella Dettagli sugli ordini. In alcuni casi i valori calcolati possono diventare obsoleti in quando in valore su cui si basano viene modificato. Ad esempio, non è consigliabile memorizzare in una tabella l'età di una persona, perché ogni anno sarebbe necessario aggiornare il valore. Si memorizzerà invece la data di nascita di quella persona e si utilizzerà un'espressione in una query per calcolare l'età. Eseguire le operazioni seguenti per creare una query che calcoli i subtotali dei prodotti in base ai dati contenuti nella tabella Dettagli sugli ordini. 1. Aprire il database di esempio Northwind configurato tramite questa procedura. 2. Nel gruppo Macro e codice della scheda Crea fare clic su Struttura query. 3. Nella finestra di dialogo Mostra tabella fare doppio clic su Dettagli sugli ordini nella scheda Tabelle. 4. Chiudere la finestra di dialogo Mostra tabella. 5. Nella tabella Dettagli sugli ordini fare doppio clic su ID prodotto per aggiungere questo campo alla prima colonna della griglia di struttura della query. 6. Nella seconda colonna della griglia fare clic con il pulsante destro del mouse sulla riga Campo e quindi scegliere Zoom dal menu di scelta rapida. 7. Nella casella Zoom digitare o incollare quanto segue: Subtotale: ([Quantità]*[Prezzo unitario])-­‐([Quantità]*[Prezzo unitario]*[Sconto]) Fare clic su OK. Questo è un campo calcolato che moltiplica la quantità di ogni prodotto per il prezzo unitario del prodotto, moltiplica la quantità di ogni prodotto per il prezzo unitario e lo sconto del prodotto e quindi sottrae lo sconto totale dal prezzo unitario totale. 8. Nel gruppo Risultati della scheda Struttura fare clic su Esegui. La query viene eseguita e viene visualizzato un elenco di prodotti e subtotali per ordine. 9. Premere MAIUSC+F12 per salvare la query e quindi assegnare alla query il nome Subtotali prodotti. 6.1 Esaminare dati riepilogati o aggregati Quando si utilizzano le tabelle per registrare transazioni o memorizzare dati numerici ricorrenti, è utile poter esaminare i dati aggregati, ad esempio somme o medie. In Access è possibile esaminare dati aggregati semplici in qualsiasi foglio dati aggiungendo una riga Totale, ovvero una riga presente nella parte inferiore del foglio dati in cui viene visualizzato un totale parziale o un altro valore di aggregazione. Non è possibile aggiungere una riga Totale al foglio dati di una query Web. È possibile aggiungere una riga Totale alla query Subtotali prodotti creata nell'esempio precedente eseguendo le operazioni seguenti: 1. Eseguire la query Subtotali prodotti e lasciare i risultati aperti in visualizzazione Foglio dati. 2. Nel gruppo Record della scheda Home fare clic su Totali. Nella parte inferiore del foglio dati verrà visualizzata una nuova riga con la parola Totale nella prima colonna. 3. Fare clic sulla cella nell'ultima riga del foglio dati denominata Totale. Notare che nella cella verrà visualizzata una freccia. 4. Fare clic sulla freccia per visualizzare le funzioni di aggregazione disponibili. Poiché la colonna contiene dati di testo, sono disponibili solo due opzioni: Nessuna e Conteggio. 5. Selezionare Conteggio. Il contenuto della cella cambia da Totale nel conteggio dei valori delle colonne. 6. Fare clic sulla cella adiacente, ovvero la seconda colonna. Notare che nella cella verrà visualizzata una freccia. 7. Fare clic sulla freccia e quindi su Somma. Nel campo verrà visualizzata una somma dei valori della colonna. 8. Lasciare la query aperta in visualizzazione Foglio dati. 6.2 Creare una query di totalizzazione per riepiloghi più complessi La riga Totale in un foglio dati risulta molto utile, ma per domande più complesse è opportuno utilizzare una query di totalizzazione, ovvero una query di selezione che consente di raggruppare o riepilogare i dati. Si supponga ad esempio di voler visualizzare le vendite totali per prodotto. A questo scopo, è possibile utilizzare la funzione di aggregazione Somma in una query di totalizzazione. Non è possibile utilizzare funzioni di aggregazione in una query Web. Eseguire le operazioni seguenti per modificare la query Subtotali prodotti in modo che restituisca il riepilogo dei subtotali dei prodotti per prodotto. 1. Nel gruppo Visualizzazioni della scheda Home fare clic su Visualizza e quindi su Visualizzazione Struttura. La query Subtotali prodotti verrà aperta in visualizzazione Struttura. 2. Nel gruppo Mostra/Nascondi della scheda Struttura fare clic su Totali. La riga Totaliè visualizzata nella griglia di struttura della query. Anche se il nome è simile, la riga Totali nella griglia di struttura e la riga Totali in un foglio dati sono diverse: •
•
•
Utilizzando la riga Totali nella griglia di struttura è possibile raggruppare i dati per valori di campo. È possibile aggiungere una riga Totale del foglio dati ai risultati di una query di totalizzazione. Quando si utilizza la riga Totali nella griglia di struttura, è necessario scegliere una funzione di aggregazione per ogni campo. Se non si desidera eseguire un calcolo su un campo, è possibile raggruppare i dati in base al campo. 3. Nella riga Totale della seconda colonna della griglia di struttura selezionare Somma dall'elenco a discesa. 4. Nel gruppo Risultati della scheda Struttura fare clic su Esegui. La query verrà eseguita e verrà visualizzato un elenco di prodotti con i subtotali. 5. Premere MAIUSC+F12 per salvare la query. Lasciare la query aperta. 6.3 Creare una query a campi incrociati per aggiungere un altro livello di raggruppamento Si supponga a questo punto di voler esaminare i subtotali dei prodotti, ma anche di aggregare i dati per mese, in modo che in ogni riga vengano visualizzati i subtotali per un prodotto e in ogni colonna i subtotali dei prodotti per un mese. Per visualizzare i subtotali per un prodotto e i subtotali dei prodotti per un mese, utilizzare una query a campi incrociati. Non è possibile creare una query Web che corrisponde a una query a campi incrociati. È possibile modificare di nuovo la query Subtotali prodotti in modo che restituisca righe di subtotali dei prodotti e colonne di subtotali mensili. 1. Nel gruppo Visualizzazioni della scheda Home fare clic su Visualizza e quindi su Visualizzazione Struttura. 2. Nel gruppo Imposta query fare clic su Mostra tabella. 3. Nella finestra di dialogo Mostra tabella fare doppio clic su Ordini e quindi scegliere Chiudi. 4. Nel gruppo Tipo di query della scheda Struttura fare clic su Campi incrociati. Nella griglia di struttura la riga Mostra è nascosta e la riga Campi incrociati è visualizzata. 5. Nella terza colonna della griglia di struttura fare clic con il pulsante destro del mouse sulla riga Campo e quindi scegliere Zoom dal menu di scelta rapida. Verrà aperta la casella Zoom. 6. Nella casella Zoom digitare o incollare quanto segue: Mese: "Mese" & DatePart("m", [Data ordine]) 7. Fare clic su OK. 8. Nella riga Campi incrociati selezionare i seguenti valori dall'elenco a discesa: Intestazione riga per la prima colonna, Valore per la seconda colonna e Intestaz. colonna per la terza colonna. 9. Nel gruppo Risultati della scheda Struttura fare clic su Esegui. La query verrà eseguita e verranno visualizzati i subtotali dei prodotti aggregati per mese. 10. Premere MAIUSC+F12 per salvare la query. 6.4 Modificare automaticamente i dati È possibile utilizzare una query di aggiornamento per modificare i dati nelle tabelle e per immettere i criteri che specificano quali righe dovranno essere aggiornate. Una query di aggiornamento consente di esaminare i dati aggiornati prima di eseguire l'aggiornamento. Non è possibile annullare una query di comando e quindi è opportuno effettuare una copia di backup delle tabelle che verranno aggiornate con una query di aggiornamento. Non è possibile creare una query Web che corrisponde a una query di aggiornamento. Nell'esempio precedente sono state aggiunte righe alla tabella Ordini di Messina. In questa tabella nel campo ID prodotto è indicato l'ID prodotto numerico. Per rendere i dati più utili per i report, si consiglia di sostituire gli ID prodotto con i nomi dei prodotti. A questo scopo è necessario innanzitutto modificare il tipo di dati del campo ID prodotto della tabella Ordini di Messina da Numero a Testo, in modo che il campo ID prodotto accetti i nomi dei prodotti. È possibile aggiornare i valori nella tabella Ordini di Messina eseguendo le operazioni seguenti: 1.
2.
3.
4.
5.
6.
7.
Aprire la tabella Ordini di Messina in visualizzazione Struttura. Nella riga ID prodotto modificare il tipo di dati da Numero in Testo. Salvare e chiudere la tabella Ordini di Messina. Nel gruppo Macro e codice della scheda Crea fare clic su Struttura query. Nella finestra di dialogo Mostra tabella fare doppio clic su Ordini di Messina e su Prodotti. Chiudere la finestra di dialogo Mostra tabella. Nel gruppo Tipo di query della scheda Struttura fare clic su Aggiornamento. Nella griglia di struttura le righe Ordina e Mostra vengono nascoste e viene visualizzata la riga Aggiorna a. 8. Nella tabella Ordini di Messina fare doppio clic su ID prodotto per aggiungere il campo alla griglia di struttura. 9. Nella riga Aggiorna a della colonna ID prodotto nella griglia di struttura digitare o incollare quanto segue: [Prodotti].[Nome prodotto] È possibile utilizzare una query di aggiornamento per eliminare i valori dei campi mediante una stringa vuota ("") o immettendo NULL nella riga Aggiorna a. 10. Nella riga Criteri digitare o incollare quanto segue: [ID prodotto] Like ([Prodotti].[ID]) La parola chiave Like è necessaria in quanto i campi che si stanno confrontando contengono tipi di dati diversi: ID prodotto è un tipo di dati di testo, ID è un tipo di dati numerico. 11. È possibile verificare quali valori verranno modificati da una query di aggiornamento visualizzando la query in visualizzazione Foglio dati. Fare clic su Visualizza nel gruppo Risultati della scheda Struttura e quindi fare clic su Visualizzazione Foglio dati. La query restituisce un elenco degli ID prodotto che verranno aggiornati. 12. Nel gruppo Risultati della scheda Struttura fare clic su Esegui. Quando si apre la tabella Ordini di Messina, si noterà che i valori numerici nel campo ID prodotto sono stati sostituiti dai nomi dei prodotti dalla tabella Prodotti. 6.5 Eliminare automaticamente i dati È possibile utilizzare una query di eliminazione per eliminare i dati dalle tabelle e per immettere i criteri che specificano quali righe dovranno essere eliminate. Una query di eliminazione consente di esaminare le righe che verranno eliminate prima di procedere all'eliminazione. Non è possibile creare una query Web che corrisponde a una query di eliminazione. Si supponga di prepararsi a inviare la tabella Ordini di Messina, aggiornata nell'esempio precedente, al partner commerciale di Messina e di notare che alcune righe contengono numerosi campi vuoti. Prima di inviare la tabella si desidera rimuovere le righe contenenti i campi vuoti. È possibile aprire semplicemente la tabella ed eliminare manualmente le righe, ma può risultare utile utilizzare una query di eliminazione se le righe da eliminare sono molte e i criteri in base ai quali eliminare determinate righe sono chiari. È possibile utilizzare una query per eliminare le righe nella tabella Ordini di Messina privi di valore nel campo ID ordine, eseguendo le operazioni seguenti: •
•
•
•
•
•
•
Nel gruppo Macro e codice della scheda Crea fare clic su Struttura query. Nella finestra di dialogo Mostra tabella fare doppio clic su Ordini di Messina. Chiudere la finestra di dialogo Mostra tabella. Nel gruppo Tipo di query della scheda Struttura fare clic su Eliminazione. Nella griglia di struttura le righe Ordina e Mostra verranno nascoste e verrà visualizzata la riga Elimina. Nella tabella Ordini di Messina fare doppio clic su ID ordine per aggiungere il campo alla griglia. Nella riga Criteri della colonna ID ordine della griglia di struttura digitare Is Null. Nel gruppo Risultati della scheda Struttura fare clic su Esegui. 6.6 Specificare i tipi di dati del parametro È possibile inoltre specificare il tipo di dati che dovrà essere accettato da un parametro. È possibile impostare il tipo di dati per qualsiasi parametro, ma è particolarmente importante impostare il tipo di dati per i dati numerici, valuta o data/ora. Quando si specifica il tipo di dati che dovrà essere accettato da un parametro, verrà visualizzato un messaggio di errore più utile qualora venga immesso il tipo di dati non corretto, ad esempio testo quando è prevista una valuta. Se si imposta un parametro affinché accetti dati di testo, qualsiasi tipo di input verrà interpretato come testo e non verranno visualizzati messaggi di errore. Per specificare il tipo di dati per i parametri in una query, eseguire le operazioni seguenti: •
•
•
Con la query aperta in visualizzazione Struttura, nel gruppo Mostra/Nascondi della scheda Struttura fare clic su Parametri. Nella colonna Parametro della finestra di dialogo Parametri query digitare la richiesta per ogni parametro per cui si desidera specificare il tipo di dati. Assicurarsi che ogni parametro corrisponda alla richiesta che si desidera utilizzare nella riga Criteri della griglia di struttura della query. Nella colonna Tipo di dati selezionare il tipo di dati per ogni parametro. 7 Importare dati da un foglio di calcolo o da un altro programma Se si ha familiarità con altri programmi per database o fogli di calcolo, probabilmente si conoscono i concetti di base del funzionamento di tali applicazioni e dei relativi tipi di database. Access è diverso non solo da molte altre applicazioni di database in quanto consente di creare database relazionali, ma anche dalla maggior parte dei fogli di calcolo in quanto include strumenti per lo sviluppo di query, maschere e report complessi. Access offre inoltre molte opzioni per l'utilizzo di altri programmi di database, ad esempio SQL Server. 7.1 Importare un foglio di lavoro di Excel in Access Molti utenti iniziano a utilizzare Access dopo avere creato un elenco in Excel. Poiché alla crescita delle dimensioni dell'elenco, tuttavia, in Excel corrisponde un aumento della complessità per organizzarlo e mantenerlo aggiornato, lo spostamento dell'elenco in Access rappresenta in genere il passaggio logico successivo. Una tabella di database è simile per struttura a un foglio di lavoro nel quale i dati vengono memorizzati in righe e colonne. Per questo solitamente risulta facile importare un foglio di lavoro in una tabella di database. La differenza principale tra memorizzare dati in un foglio di lavoro e memorizzarli in un database è il modo in cui vengono organizzati. Importare semplicemente l'intero foglio di lavoro sotto forma di nuova tabella in un database non consente di risolvere i problemi legati all'organizzazione e all'aggiornamento dei dati, in particolare se il foglio di lavoro contiene dati ridondanti. Per risolvere questi problemi è necessario suddividere i dati del foglio di calcolo in tabelle separate, ognuna contenente dati correlati. Per ulteriori informazioni sull'organizzazione dei dati nelle tabelle, vedere l'articolo Nozioni fondamentali della progettazione di database. In Access è disponibile la Creazione guidata Analizzatore tabelle, che consente di eseguire questo processo. Dopo avere importato i dati in una tabella, la procedura guidata consente di dividerla in tabelle separate, ognuna delle quali contiene dati non duplicati in altre tabelle. Vengono inoltre create le relazioni necessarie tra le tabelle. 7.2 Importare un foglio di lavoro di Excel sotto forma di tabella in un nuovo database •
•
Nella scheda File fare clic su Nuovo e quindi su Database vuoto. Digitare un nome per il nuovo database nella casella Nome file e quindi fare clic su Crea. Il nuovo database verrà aperto e verrà creata una nuova tabella vuota, denominata Tabella1. Chiudere la Tabella1. Quando viene richiesto se si desidera salvare le modifiche alla struttura della Tabella1, fare clic su No. •
•
•
•
Nel gruppo Importa e collega della scheda Dati esterni fare clic su Excel Nella finestra di dialogo Carica dati esterni fare clic su Sfoglia. Per individuare il file, utilizzare la finestra di dialogo Apri file. Selezionare il file e quindi fare clic su Apri. . Nella finestra di dialogo Carica dati esterni verificare che l'opzione Importa dati di origine in una nuova tabella nel database corrente sia selezionata. Fare clic su OK. •
•
Verrà avviata l'Importazione guidata Foglio di calcolo e verranno richieste alcune informazioni relative ai dati. Seguire le istruzioni visualizzate e fare clic su Avanti o Indietro per spostarsi tra le pagine. Nell'ultima pagina della procedura guidata fare clic su Fine. Verrà richiesto se si desidera salvare i dettagli dell'operazione di importazione appena completata. Se si prevede di dover ripetere la stessa operazione di importazione in futuro, fare clic su Sì e quindi specificare i dettagli. Sarà così possibile riprodurre l'operazione facendo clic su Importazioni salvate nel gruppo Importa della scheda Dati esterni. Se non si vuole salvare i dettagli dell'operazione fare clic su Chiudi. I dati verranno importati in una nuova tabella, che verrà successivamente visualizzata in Tutte le tabelle nel riquadro di spostamento. 7.3 Utilizzare la Creazione guidata Analizzatore tabelle per organizzare i dati Dopo che i dati sono stati importati in una tabella di Access è possibile utilizzare la Creazione guidata Analizzatore tabelle per identificare velocemente i dati ridondanti. La procedura guidata semplifica infatti l'operazione di organizzazione dei dati in tabelle diverse, in modo da poterli memorizzare nella maniera più efficiente possibile. La tabella originale viene conservata come backup e vengono quindi create nuove tabelle che potranno essere utilizzate come base per la propria applicazione di database. •
•
Aprire il database di Access che contiene la tabella da analizzare. Nel gruppo Analizza della scheda Strumenti database fare clic su Analizza tabella. Verrà avviata la Creazione guidata Analizzatore tabelle. Le prime due pagine della procedura guidata includono una breve presentazione completa di pulsanti su cui è possibile fare clic per visualizzare alcune esempi. Se anziché le pagine introduttive viene visualizzata la casella di controllo Mostra pagine introduttive, selezionare la casella di controllo e quindi fare clic su Indietro due volte per visualizzare l'introduzione. Se non si desidera visualizzare di muovo le pagine introduttive dopo avere letto l'introduzione, deselezionare la casella di controllo Mostra pagine introduttive. •
•
Nella pagina Quale tabella contiene campi con valori ripetuti in molti record? selezionare la tabella da analizzare e quindi fare clic su Avanti. È possibile decidere quali campi inserire nelle tabelle specifiche in modo automatico o manuale. Nel primo caso è comunque possibile apportare modifiche al layout della tabella nella pagina successiva della procedura guidata. Se la scelta dei campi da inserire nelle tabelle viene eseguita automaticamente, le scelte potrebbero non essere quelle ottimali per i propri dati, soprattutto se il numero di dati non è elevato. È pertanto necessario verificare con attenzione i risultati della procedura guidata. La procedura guidata, tuttavia, potrebbe suggerire un'organizzazione più efficiente rispetto a quella pensata dall'utente. È pertanto consigliabile provare almeno una volta le decisioni della procedura guidata. Se i risultati non sono adeguati alle proprie esigenze, è sempre possibile fare clic su Indietro e ridisporre i campi manualmente. •
Fare clic su Avanti. In questa pagina vengono indicate le tabelle in cui inserire i campi specifici. Se la scelta è stata eseguita in modo automatico, vengono visualizzate più tabelle connesse da linee di relazione. In caso contrario, viene creata un'unica tabella contenente tutti i campi. È comunque possibile apportare modifiche in entrambi i casi. • È possibile trascinare campi da una tabella a un'area vuota della pagina per creare una nuova tabella che contiene tali campi. Verrà richiesto di immettere un nome per la tabella. • È possibile trascinare campi da una tabella a un'altra per memorizzarli in modo più efficiente. Alla maggior parte delle tabelle viene assegnato un campo ID o ID univoco generato. Per ulteriori informazioni sui campi di questo tipo, fare clic su Suggerimenti nell'angolo superiore destro della procedura guidata. •
•
•
•
•
Per annullare una modifica, fare clic sul pulsante Annulla. Per rinominare una tabella, fare doppio clic sulla relativa barra del titolo, digitare il nuovo nome e quindi fare clic su OK. Dopo avere disposto i campi nel modo desiderato, fare clic su Avanti. Se vengono individuati record con valori molto simili, tali valori vengono identificati come possibili errori di battitura e verrà visualizzata una schermata in cui è possibile confermare le operazioni da eseguire. Scorrere l'elenco per individuare quelli con eventuali valori nella colonna Correzione e quindi fare clic sulla voce appropriata nell'elenco a discesa. Selezionare Lascia inalterato per non apportare alcuna modifica al valore. Al termine dell'operazione, fare clic su Avanti. Verrà richiesto se si desidera creare una query somigliante alla tabella originale. Se sono già stati creati report e maschere basati sulla tabella originale, è consigliabile creare una query di questo tipo. Se si seleziona Crea la query, la tabella originale verrà rinominata mediante l'accodamento del suffisso "_OLD" al nome della tabella e alla nuova query verrà assegnato il nome della tabella originale. Le maschere e i report che si basavano sulla tabella utilizzeranno la query per i propri dati e manterranno inalterato il funzionamento precedente. Fare clic su Fine. Verranno create le nuove tabelle in base alle specifiche indicate e successivamente verranno aperte. Dopo avere controllato i risultati, chiudere le tabelle. 7.4 Utilizzare dati di altri programmi Access 2010 include caratteristiche che consentono di utilizzare dati memorizzati in altri programmi. Creare un nuovo database di Access collegato a dati contenuti in file di formato diverso È possibile utilizzare Access per aprire file in un formato diverso, ad esempio testo, dBASE o foglio di calcolo. Verrà creato automaticamente un database di Access e il file verrà collegato. •
•
•
•
•
Avviare Access. Nella scheda File fare clic su Apri. Nella finestra di dialogo Apri fare clic sul tipo di file che si desidera aprire nell'elenco. Se non si è certi del tipo di file, fare clic su Tutti i file (*.*). Se necessario, selezionare la cartella in cui è contenuto il file da aprire. Una volta individuato, fare doppio clic sul file per aprirlo. Seguire le istruzioni visualizzate. Nell'ultima pagina della procedura guidata fare clic su Fine. Importare o collegare dati in un database di Access esistente I dati possono essere importati da origini e programmi diversi in tabelle di Access in modo che siano contenuti in file di Access oppure è possibile collegare i dati da Access in modo che rimangano nel file originale, esternamente rispetto al file di Access. Nel gruppo Importa e collega della scheda Dati esterni fare clic sul formato in cui sono memorizzati i dati. È possibile importare o collegare dati dalle origini seguenti: •
•
•
•
Excel È possibile importare i dati da un foglio di lavoro o da un intervallo denominato di una cartella di lavoro di Excel. Ogni foglio di lavoro o intervallo denominato deve essere importato o collegato separatamente. Access Questa opzione risulta molto utile per separare il processo dai dati, creando in tal modo un database diviso. È quindi possibile utilizzare un database per le maschere, i report e le macro, mantenendo i dati in un altro database. In tal modo è possibile sviluppare miglioramenti senza interrompere il lavoro di altri utenti. È inoltre possibile combinare in un unico database dati di più database di Access diversi, semplificando la creazione di un riepilogo dei dati per vari reparti o partner aziendali. Database ODBC Questo formato è supportato da molti programmi, inclusi numerosi prodotti per server di database. Consente di creare database centralizzati in cui combinare dati di sistemi diversi. File di testo È possibile connettere un semplice file di testo e persino utilizzare Access per modificare il contenuto del file. In questo modo i dati di Access risulteranno più facilmente utilizzabili in una vasta gamma di programmi. •
•
•
•
•
•
File XML Questo formato consente la compatibilità con un'ampia gamma di programmi, tra cui alcuni server Web. Elenco SharePoint Questo formato rende i dati utilizzabili con un Web browser e costituisce il metodo standard per utilizzare un elenco SharePoint. Servizi dati È possibile connettersi a servizi dati Web in ambito aziendale. Documento HTML Cartella di Outlook È possibile connettersi alle cartelle di Outlook per integrare più facilmente le informazioni sui contatti con gli altri dati disponibili. File di dBase dBase è un noto sistema di database alternativo supportato da Access. Verrà visualizzata la finestra di dialogo Carica dati esterni. •
Seguire le istruzioni visualizzate. I dati verranno importati o collegati al database. Per la maggior parte dei formati, è necessario specificare il percorso dei dati e quindi scegliere le modalità di memorizzazione nel database. 8 Utilizzare un DataBase di una versione precedente con versioni diverse di acces Se il database o il progetto di Access è stato creato in Access 2000 o versione successiva, sarà possibile utilizzarlo nella versione del programma in cui è stato creato o in qualsiasi versione successiva, anche se si tratta di un file con sicurezza abilitata. I file di Access 2000, ad esempio, possono essere utilizzati in Access 2000, Access 2002, Access 2003, Access 2007 e Access 2010. Si può verificare una situazione in cui si desidera conservare i dati in una versione precedente di Access, ma sono presenti alcuni utenti che disponendo di una versione successiva di Access vogliono collegarsi a tali dati continuando a sfruttare alcune delle caratteristiche della versione successiva. La soluzione in questo caso consisterà nel creare un nuovo database "front-­‐end" nella versione successiva (contenente maschere, report, query, macro, ma nessuna tabella) e collegarlo alle tabelle nel file della versione precedente. A tale scopo, utilizzare una delle procedure descritte di seguito a seconda che il database sia contenuto in un solo file oppure sia già stato suddiviso in un'applicazione front-­‐end/back-­‐end. 8.1 Utilizzare un file di database di Access in diverse versioni di Access Se tutte le tabelle, le maschere e gli altri oggetti di database di Access di versioni precedenti sono contenuti in un unico file e si desidera utilizzare il database in diverse versioni di Access, sarà possibile creare un nuovo database front-­‐end in una versione successiva e collegarlo al file originale. Gli utenti che dispongono della versione precedente di Access potranno continuare a utilizzare il database originale, mentre gli utenti della versione successiva potranno utilizzare il nuovo database front-­‐end per collegarsi agli stessi dati. Se necessario, per gestire più versioni di Access, è possibile creare diverse versioni dei database front-­‐end. Passaggio 1: creare una copia del database esistente e salvarlo in un nuovo formato Utilizzare la procedura descritta di seguito per convertire il database in uno dei tre formati più recenti: Access 2000, Access 2002-­‐2003 o Access 2007. Questo comando consente di preservare il database nel suo formato originale e di crearne una copia nel formato specificato. 1. Chiudere il file di Access. Se si tratta di un database multiutente di Access che si trova in un server o in una cartella condivisa, assicurarsi che non sia aperto da altri utenti. 2. Avviare Access 2010. 3. Nella scheda File fare clic su Apri. 4. Selezionare il percorso del file che si desidera convertire e quindi fare doppio clic sul file per aprirlo. Se viene visualizzata la finestra di dialogo Miglioramento database in cui viene richiesto se si desidera migliorare il database, fare clic su No. 5. Chiudere l'eventuale maschera visualizzata all'apertura del database. 6. Nella scheda File fare clic su Salva database con nome. 7. Nella finestra Salva con nome digitare un nome per il nuovo database. A meno che non si intenda salvare il nuovo database in un percorso diverso, utilizzare un nome diverso da quello del database originale. In entrambi i casi è comunque consigliabile cambiare nome, in modo da poter distinguere facilmente tra il database front-­‐end e il database back-­‐end. Tuttavia, nel caso in cui il database venga convertito nel formato di Access 2007, l'estensione del nome del file cambierà da mdb a accdb, per cui sarà possibile continuare a utilizzare lo stesso nome di file. 8. Fare clic su Salva. Passaggio 2: dividere il database copiato e utilizzare il file originale come database back-­‐end Dividere il database convertito eseguendo le operazioni seguenti: •
Nel gruppo Sposta dati della scheda Strumenti database fare clic su Database di Access •
Nella finestra di dialogo Divisione guidata database fare clic su Dividi database. . Se si desidera, è possibile creare un backup. In alternativa, è possibile semplicemente ricreare la copia utilizzando il database originale. •
Digitare un nome per il database back-­‐end e quindi fare clic su Dividi. Passaggio 3: collegare il nuovo database front-­‐end al database originale 1. Eliminare il database back-­‐end creato dalla Divisione guidata database, prestando particolare attenzione a non eliminare il database originale. 2. Collegare il nuovo database front-­‐end alle tabelle del database originale. Nel gruppo Importa e collega della scheda Dati esterni fare clic su Gestione tabelle collegate . 3. Fare clic su Seleziona tutto e quindi selezionare la casella di controllo Richiedi sempre nuovo percorso. 4. Fare clic su OK, individuare il database della versione precedente e quindi fare doppio clic su di esso. Se tutto procede regolarmente, verrà visualizzato un messaggio che informa che tutte le tabelle collegate selezionate sono state aggiornate correttamente. A questo punto è possibile migliorare il nuovo database front-­‐end affinché supporti nuove caratteristiche per gli utenti che dispongono di versioni più recenti di Access. Gli utenti che dispongono delle versioni precedenti potranno continuare a utilizzare il database della versione precedente. 8.2 Utilizzare un'applicazione front-­‐end/back-­‐end in diverse versioni di Access Se il database di Access è già un'applicazione front-­‐end/back-­‐end, è possibile convertire il front-­‐
end nel nuovo formato di file, senza dover apportare alcuna modifica al database back-­‐end. Nella procedura seguente viene spiegato come utilizzare il comando Salva database con nome per convertire il database front-­‐end in uno qualsiasi dei tre formati più recenti, ovvero Access 2000, Access 2002-­‐2003 o Access 2007. Questo comando consente di mantenere il formato originale del database e di creare una copia del database nel formato specificato. 1. Chiudere il database front-­‐end. Se si tratta di un database multiutente di Access disponibile in un server o in una cartella condivisa, assicurarsi che non sia aperto da altri utenti. 2. Avviare Access 2010. 3. Nella scheda File fare clic su Apri. 4. Passare al percorso del database front-­‐end e quindi fare doppio clic sul nome del database per aprirlo. Se viene visualizzata la finestra di dialogo Miglioramento database in cui viene richiesto se si desidera migliorare il database, fare clic su No. 5.
6.
7.
8.
Chiudere l'eventuale maschera visualizzata all'apertura del database. Nella scheda File fare clic su Salva database con nome. Nella finestra Salva con nome digitare un nome per il nuovo database. Fare clic su Salva. A questo punto è possibile migliorare il nuovo database front-­‐end affinché supporti le nuove caratteristiche.