Roberto Pecchioli, Nicola Salotti, Massimiliano Sergenti Esercizio ODBC Roberto Pecchioli, Nicola Salotti, Massimiliano Sergenti
Configurare il driver ODBC Start Settings Control Panel Administrative Tools Aprire: Data Source(ODBC) User DSN Add…. Selezionare il driver : Oracle8 ODBC Driver (in OraHome90) Click su Finish.
Configurare Oracle ODBC driver Data source name: un nome del tutto arbitrario (uso orcl.isi1.odbc oppure oracledb.datatop.odbc) Service name: il service name del database oracle verso cui voglio effettuare la connessione. (orcl.isi1 oppure oracledb.datatop) UserID: il mio user name di Oracle Click su OK
Esercizio Creare una query MS Access per visualizzare e cancellare le sessioni gestite nell’esercizio 5. Creo una directory ~/ese6bdl Copio in ~/ese6bdl da ~ghelli/bdl02/ese6 i file create.sql (cancellazione in cascata a partire dalle sessioni) e createview.sql (per estrarre i secondi dalla tabella Sessioni) Compilo i file.
Funzionalità di Microsoft Access Table: tabelle relazionali sulle quali è possibile creare form, eseguire query, creare report. La creazione delle relazioni può essere effettuata anche tramite wizard. Query: interrogazione SQL Access (possibilità di creazione tramite interfaccia grafica e/o wizard). Form: per creare delle semplici maschere di inserimento dati sulle tabelle presenti nel database. Macros: procedure, che possono essere associate ad eventi. Report: strumento per la presentazione (tipicamente in formato stampa) delle tabelle o dei risultati di query. Modules: strumento per la programmazione di procedure e funzioni in VBA.
Utilizzare tabelle Oracle in MS Access Start Programs Microsoft Access Blank database File Get External Data Link Tables Settare il parametro File of types a ODBC database Selezionare Machine Data Source e selezionare l’istanza di oracle a cui si vuole connettersi (orcl.isi1.odbc oppure oracledb.datatop.odbc) Inserire Username e Password dell’istanza di oracle a cui si vuole connetersi. OK, e aspettare…
Usare tabelle Oracle in MS Access Selezionare le tabelle “Acquisti, Oggetti, Scelte, Sessioni, Sessioni_Secondi”. Premo solo OK per tutte le richieste di selezione di campi per integrità referenziale. Apro e modifico le tabelle. Osservo l’effetto delle modifiche sulle tabelle Oracle, usando SqlPlus Worksheet: select * from <tabella>;
Query: Sessioni Aperte Creo una query Access che mostri per ogni sessione aperta: ID della sessione il nome dell’utente, il suo anno di nascita Il numero di acquisti effettuati dall’utente; Il prezzo totale degli acquisti effettuati dall’utente;
Creazione di Sessioni Aperte Nella finestra di gestione del database seleziono queries. Premo il bottone New Opzione Design View OK Dalla finestra Show Table (menu Query scelta Show Table) seleziono con Add le tabelle Acquisti, Oggetti, Sessioni. Premo Close. Considerato che per selezionare un campo di una tabella devo fare doppio click sul suo nome, seleziono i campi: IDSessione,NomeUtente, AnnoNascita, prezzo
Creazione di Sessioni Aperte Creo le Join tra le tabelle: trascino il campo IDSessione sul campo sessione trascino il campo IDOggetto sul campo oggetto Definisco le outer join: faccio doppio click sulla linea che rappresenta la join tra Sessioni e Acquisti e seleziono l’opzione 2 (da Sessioni verso Acquisti). la join tra Acquisti e Oggetti e seleziono l’opzione 3 (da Acquisti verso Oggetti).
Creazione di Sessioni Aperte Trasformo la query in una group by: mi posiziono sulla parte inferiore della finestra della query e premo il tasto destro, seleziono Totals. Modifico il campo PREZZO della select: Sostituisco PREZZO con TOTALE: PREZZO E sostituisco Group By con Sum Inserisco un ulteriore campo alla select: Salvo la query come: Sessioni Aperte. Eseguo la query premendo ! Field (campo) Total (totale) ACQUISTI: SESSIONE Count
Form in Access Creo una form che consente di eliminare una sessione La form mostra le sessioni nella tabella sessioni; ogni sessione è associata ad un bottone che premuto ne causa la cancellazione.
Form Cancellazione Sessioni Nella finestra di gestione del database seleziono forms. Premo il bottone New Opzione Form Wizard OK Seleziono la tabella o query su cui eseguire la ricerca e i campi che devono comparire nel form: Query: Sessioni Aperte Campi: Tutti (premere >>) Click su Next
Form Cancellazione Sessioni Seleziono il layout del form tabular tra quelli disponibili e premo “Next”. Seleziono lo stile grafico tra quelli disponibili e premo “Next”. Scrivo il nome FormCancellazioneSessioni, seleziono Open the form; quindi seleziono il tasto “Finish”.
Form Cancellazione Sessioni Aggiungo un bottone di comando (cancellazione) alla form. Clicco con il tasto destro del mouse sul form appena creato; comparirà un menu da cui scegliere il comando Form Design Seleziono dalla Toolbox il “Command Button” identificabile dalla seguente figura: Clicco sul form, nel punto in cui deve comparire il bottone.
Form Cancellazione Sessioni Seleziono nel Wizard la categoria “Record Operation” e tra le azioni, il comando “Delete Record”; quindi premere “Next”. Seleziono il testo o la figura che dovrà contraddistinguere il bottone appena creato e premere il tasto “Next”. Scrivo il nome associato al bottone e quindi premo il tasto “Finish”.
Esercizio di query Definire una query che per ogni sessione ritorni: IDSESSIONE NOME UTENTE ANNO NASCITA NUM. SCELTE NUM. ACQUISTI
Soluzione Definire una query che calcoli il numero delle scelte per sessione Definire una query che calcoli il numero degli acquisti per sessione Definire una query che faccia la giunzione tra i risultati delle due query precedenti
Esercizio di Form Realizzare una form per l’immissione dati e la cancellazione nella tabella Clienti del database del corso La form deve mostrare i dati in formato Columnar Deve avere un bottone di comando per l’inserimento dati (funzionalità add new record) e per la cancellazione
Form Immissione Spot Per inserire uno spot è necessario specificare un cliente tra quelli esistenti Realizziamo una form di inserimento per la tabella Spot che contiene una Combo Box per cercare tra i clienti esistenti nel database La form è associata alla tabella Spot, ma consente l’accesso alla tabella Clienti per la modifica o l’inserimento del campo CodiceCliente.
Form Immissione Spot Creo un link alle tabelle Spot e Clienti Creo una form in con il Wizard Seleziono la tabella Spot e tutti i suoi campi Quindi scelgo il formato Columnar e lo stile che preferisco Inserisco un nome per la form Seleziono Modify Form’s Design e premo Finish
Form Immissione Spot Per aggiungere un Combo Box per il campo cliente di Spot: Seleziono e cancello il campo Text Box CodiceCliente Seleziono dalla Toolbox il bottone Combo Box identificabile dalla seguente figura: Clicco sul form, nel punto in cui deve comparire la Combo Box.
Form Immissione Spot Seleziono nel Wizard la prima opzione: i valori nella combo box vengono prelevati da una tabella o da una query del database. Seleziono la tabella Clienti e premo Next Seleziono tutti i campi (>>) e premo Next Definisco il formato della Combo Box: la chiave può essere o meno parte dei campi mostrati nella Combo Box larghezza di ogni campo, oppure, per ottenere una grandezza ottimale, fare doppio click sul bordo destro di ogni colonna. Premo Next.
Form Immissione Spot Al momento dell’uso, la selezione di un’opzione tra quelle della Combo Box ritorna un valore. Tale valore è per default la chiave se, al passo precedente, non ho messo quest’ultima tra i campi della Combo Box. Altrimenti, se ho immesso la chiave tra i campi della Combo Box, devo scegliere quale, tra i campi disponibili, viene ritornato in corrispondenza di una selezione della Combo Box. Nel secondo caso, seleziono il campo CodiceCliente Premo Next.
Form Immissione Spot Richiedo che il valore ritornato dalla Combo Box venga memorizzato nel campo CodiceCliente della tabella Spot. Seleziono la seconda opzione: Store that value in this field Seleziono il campo CodiceCliente (se il campo non è presente, ne seleziono uno a caso e risolvo il problema successivamente – vedi lucido successivo) Premo Next. Scrivere un nome per la Combo Box appena creata e quindi premere il tasto Finish. Attenzione: le chiavi primarie devono essere inserite manualmente (si consiglia di assegnare valori adeguatamente grandi).
Campo risultato Se il campo CodiceCliente non appare nella penultima schermata: Faccio click con il tasto destro sulla Combo Box Seleziono Properties Seleziono il Tab Data Modifico il campo Control Source in CodiceCliente
Esercizio Combo Box Importare in Access le tabelle Pagamenti Pagamenti_Fatture Fatture Definire una form di inserimento e cancellazione per Pagamenti_Fatture che utilizzi Combo Box dove utile. Attenzione: le chiavi primarie devono essere inserite manualmente (si consiglia di assegnare valori adeguatamente grandi).