SlideShare una empresa de Scribd logo
1 de 15
giorno2-100321110649-phpapp02
Autore: - http://diegolamonica.info
Email:me@diegolamonica.info
Office & VBA
●Apprendere l'utilizzo
avanzato della suite MS
Office
●Object Linking Exchange
(OLE)
●Visual Basic for
Applications (VBA)
giorno2-100321110649-phpapp02
Autore: - http://diegolamonica.info
Email:me@diegolamonica.info
Che cos'è Microsoft Office?
È una suite applicativa
costituita da una serie di
strumenti differenziati in
dipendenza della versione
posseduta
giorno2-100321110649-phpapp02
Autore: - http://diegolamonica.info
Email:me@diegolamonica.info
Riassunto della prima giornata
✔ Microsof Access è un RDBMS con interfaccia grafica che fonde
l'architettura JET a una semplice interfaccia grafica
✔ I campi sono i dati elementari mentre le tabelle raggruppano più campi
(es. rubrica indirizzi: ciascun nominativo è un insieme di più campi)
✔ Le query sono particolari rappresentazioni delle tabelle che riportano
solo le informazioni che rispondono a determinati criteri
✔ La rappresentazione gerarchica delle tabelle è identificato dalle
relazioni.
✔ Le interfacce sono uno strumento per rappresentare i dati in un modo
“user friendly”.
giorno2-100321110649-phpapp02
Autore: - http://diegolamonica.info
Email:me@diegolamonica.info
Riassunto della seconda giornata – 1
✔ Esistono componenti standard e componenti avanzati da poter
aggiungere alle interfacce.
✔ Un particolare componente avanzato è identificato dalle sottomaschere.
✔ Una macro corrisponde ad un insieme di operazioni eseguite in
sequenza. È possibile impostare condizioni per il flusso delle
operazioni.
✔ Le maschere di Microsoft Access sono orientate agli eventi che
vengono scatenati dall'interazione dell'utente con i componenti
dell'interfaccia.
✔ Ad un'evento si può associare una sola azione (Macro / Codice VBA)
giorno2-100321110649-phpapp02
Autore: - http://diegolamonica.info
Email:me@diegolamonica.info
Riassunto della seconda giornata – 2
✔ VBA è un linguaggio di scripting che ha le medesime regole di Visual
Basic
✔ Una variabile è definita tramite la parola chiave Dim e di default ha
una visibilità limitata (Dim o Private) o può essere di tipo Public
✔ Ad una variabile è possibile assegnare un valore, un'altra variabile o
il risultato di un'espressione.
✔ Le classi sono strutture che raggruppano proprietà e metodi
✔ I componenti delle maschere sono classi che implementano
un'interfaccia grafica e gli eventi.
giorno2-100321110649-phpapp02
Autore: - http://diegolamonica.info
Email:me@diegolamonica.info
Riassunto della terza giornata
✔ Una variabile booleana può assumere solo 2 valori: True o False.
✔ Esistono operatori per le variabili booleane (And, Or, Xor, Not)
✔ Un blocco condizionale viene eseguito solo al verificarsi di una precisa
condizione (“if then else” e “select case”).
✔ I cicli iterativi sono blocchi di codice che vengono ripetuti fino al verificarsi
di una precisa condizione (for, while, do while e do until).
✔ Per forzare l'uscita da un ciclo si usa il comando “exit” seguito
dall'identificatore del ciclo (“exit for”, “exit do”, “exit while”).
✔ Per le procedure (sub) e le funzioni (function) esistono analoghi
comandi di uscita (“exit sub” “exit function”)
giorno2-100321110649-phpapp02
Autore: - http://diegolamonica.info
Email:me@diegolamonica.info
Il programma del corso – 4° giorno
● Accesso ai dati tramite scripting (nel
database corrente)
● In pratica: progettare un database da zero
● Nascondere tabelle, query e maschere a
tutti gli utenti
giorno2-100321110649-phpapp02
Autore: - http://diegolamonica.info
Email:me@diegolamonica.info
Il database corrente
La tecnologica di base con cui da VBA è possibile accedere ad un Database è
DAO (Data Access Object).
Application.CurrentDB è il Database di Access da cui verrà eseguito il
codice VBA in esecuzione.
Esistono diversi metodi nell'oggetto Application.CurrentDB. I più importanti
sono:
✔ Execute: esegue un'operazione SQL che non restituisce risultati (es.
update, delete, insert).
✔ OpenRecordset: utilizzata per eseguire una query che restituisce dei
dati da poter immagazzinare in un oggetto denominato Recordset.
Per tutti i metodi e le proprietà consultare la documentazione contestuale.
giorno2-100321110649-phpapp02
Autore: - http://diegolamonica.info
Email:me@diegolamonica.info
Interrogare una tabella
Set Rs = Application.CurrentDB.OpenRecordset(QuerySQL)
Esegue la query QuerySQL sul database corrente e ne acquisisce tutte le
righe di cui si prevede l'estrazione fornendo un oggetto denominato
Recordset che consente di navigare i dati della tabella.
Il puntatore (Recordset) parte dalla prima riga (Record) disponibile.
QuerySQL può essere il nome di una tabella, il nome di una query o una
query di interrogazione (select … from … where … )
giorno2-100321110649-phpapp02
Autore: - http://diegolamonica.info
Email:me@diegolamonica.info
Metodi del Recordset
✔ metodi per la navigazione del record:
✔ MoveFirst: sposta il cursore alla prima riga dell'interrogazione
✔ MovePrevious: sposta il cursore alla riga precedente rispetto a quella
corrente.
✔ MoveNext: sposta il cursore alla riga successiva a quella corrente
✔ MoveLast: sposta il cursore all'ultima riga disponibile nel recordset.
✔ Metodi per l'aggiornamento del record:
✔ Delete: cancella il record corrente
✔ AddNew: Predispone la tabella principale ad ospitare nuovi dati
✔ Update: Applica le modifiche o il salvataggio.
giorno2-100321110649-phpapp02
Autore: - http://diegolamonica.info
Email:me@diegolamonica.info
Proprietà del Recordset
✔ EOF: Valore booleano in sola lettura: restituisce True se non ci sono più
record da leggere.
✔ BOF:Valore booleano in sola lettura. Restituisce True se siamo al primo
record.
✔ RecordCount: restituisce il numero di record ottenuti dall'interrogazione.
✔ Fields: è una proprietà particolare definita a sua volta come una collezione
di oggetti Field.
✔ Ciascun Field corrisponde ad una colonna della tabella interrogata.
✔ Accedere ad un Field se non c'è un record corrente si genera un'errore
di run-time.
giorno2-100321110649-phpapp02
Autore: - http://diegolamonica.info
Email:me@diegolamonica.info
Esempio di interrogazione DB
Dim DB As Database
Dim Rs As Recordset
Set DB = Application.CurrentDB
Set Rs = DB.OpenRecordset(“Anagrafica”)
Do While Not Rs.eof
Debug.Print Rs(“Cognome”) & “ “ & Rs(“Nome”)
Rs.MoveNext
Loop
Rs.Close
Set Rs = Nothing
giorno2-100321110649-phpapp02
Autore: - http://diegolamonica.info
Email:me@diegolamonica.info
Progettare un DB da zero
Un'agenzia di scommesse ha richiesto la progettazione un simulatore di corse ippiche
che soddifi i seguenti requisiti:
✔ Bisogna mantenere memoria degli scommettitori
✔ Bisogna poter gestire un'anagrafica dei cavalli
✔ Il sistema di vincite deve poter gestire scommesse per piazzamento
✔ È necessario prevedere che il sistema simuli una corsa completa
✔ è dovranno essere il rispettate le seguenti condizioni:
✔ 0.1% di possibilità che un cavallo si infortuni
✔ 30% di possibilità che non avanzi rispetto agli altri
✔ Il restante 59.9% che il cavallo avanzi verso il traguardo
✔ Per ciascuna corsa bisogna tener traccia delle vincite
giorno2-100321110649-phpapp02
Autore: - http://diegolamonica.info
Email:me@diegolamonica.info
Nascondere gli oggetti del DB
Per maggiore sicurezza tutti gli oggetti
necessari al funzionamento dell'applicazione
Access è possibile nasconderli.
Per visualizzare successivamente gli oggetti
nascosti abilitare l'opzione dal menu
“strumentiopzioni”
giorno2-100321110649-phpapp02
Autore: - http://diegolamonica.info
Email:me@diegolamonica.info
Il programma del corso – 5° giorno
● Collegarsi a tabelle in un altro
Database
● Interrogare altre basi dati tramite
VBA

Más contenido relacionado

Destacado

Strutture fondamentali della_programmaizone_visual_basicv2014_1.0
Strutture fondamentali della_programmaizone_visual_basicv2014_1.0Strutture fondamentali della_programmaizone_visual_basicv2014_1.0
Strutture fondamentali della_programmaizone_visual_basicv2014_1.0I.S.I.S. "Antonio Serra" - Napoli
 
Capitolo 1 richiami mat. finanziaria
Capitolo 1   richiami mat. finanziariaCapitolo 1   richiami mat. finanziaria
Capitolo 1 richiami mat. finanziariaGiovanni Della Lunga
 
Lezione 11 - Vba E Excel
Lezione 11 - Vba E ExcelLezione 11 - Vba E Excel
Lezione 11 - Vba E ExcelRice Cipriani
 
Esercizio di excel
Esercizio di excelEsercizio di excel
Esercizio di excelremo luzi
 
Capitolo 2 elementi di programmazione in vba
Capitolo 2   elementi di programmazione in vbaCapitolo 2   elementi di programmazione in vba
Capitolo 2 elementi di programmazione in vbaGiovanni Della Lunga
 
Lezione 1 - Introduzione al VBA per Excel
Lezione 1 - Introduzione al VBA per ExcelLezione 1 - Introduzione al VBA per Excel
Lezione 1 - Introduzione al VBA per ExcelGiovanni Della Lunga
 

Destacado (10)

Office & VBA - Giorno 2
Office & VBA - Giorno 2Office & VBA - Giorno 2
Office & VBA - Giorno 2
 
Office & VBA - Giorno 3
Office & VBA - Giorno 3Office & VBA - Giorno 3
Office & VBA - Giorno 3
 
Strutture fondamentali della_programmaizone_visual_basicv2014_1.0
Strutture fondamentali della_programmaizone_visual_basicv2014_1.0Strutture fondamentali della_programmaizone_visual_basicv2014_1.0
Strutture fondamentali della_programmaizone_visual_basicv2014_1.0
 
Capitolo 4 titoli obbligazionari
Capitolo 4   titoli obbligazionariCapitolo 4   titoli obbligazionari
Capitolo 4 titoli obbligazionari
 
Capitolo 1 richiami mat. finanziaria
Capitolo 1   richiami mat. finanziariaCapitolo 1   richiami mat. finanziaria
Capitolo 1 richiami mat. finanziaria
 
Lezione 11 - Vba E Excel
Lezione 11 - Vba E ExcelLezione 11 - Vba E Excel
Lezione 11 - Vba E Excel
 
Esercizio di excel
Esercizio di excelEsercizio di excel
Esercizio di excel
 
Capitolo 2 elementi di programmazione in vba
Capitolo 2   elementi di programmazione in vbaCapitolo 2   elementi di programmazione in vba
Capitolo 2 elementi di programmazione in vba
 
Lezione 1 - Introduzione al VBA per Excel
Lezione 1 - Introduzione al VBA per ExcelLezione 1 - Introduzione al VBA per Excel
Lezione 1 - Introduzione al VBA per Excel
 
Simulation methods finance_2
Simulation methods finance_2Simulation methods finance_2
Simulation methods finance_2
 

Similar a Office & VBA - Giorni 4 e 5

How create a single page apps using html5 and javascript
How create a single page apps using html5 and javascript How create a single page apps using html5 and javascript
How create a single page apps using html5 and javascript Stefano Marchisio
 
Maria Grazia Maffucci- programmazione presentazione
Maria Grazia Maffucci- programmazione presentazioneMaria Grazia Maffucci- programmazione presentazione
Maria Grazia Maffucci- programmazione presentazioneMaria Grazia Maffucci
 
MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009Massimiliano Dessì
 
MongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework MeetingMongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework Meetingguest67beeb9
 
Introduzione a Node.js
Introduzione a Node.jsIntroduzione a Node.js
Introduzione a Node.jsMichele Capra
 
Deploy MongoDB su Infrastruttura Amazon Web Services
Deploy MongoDB su Infrastruttura Amazon Web ServicesDeploy MongoDB su Infrastruttura Amazon Web Services
Deploy MongoDB su Infrastruttura Amazon Web ServicesStefano Dindo
 
MongoDB User Group Padova - Overviews iniziale su MongoDB
MongoDB User Group Padova - Overviews iniziale su MongoDBMongoDB User Group Padova - Overviews iniziale su MongoDB
MongoDB User Group Padova - Overviews iniziale su MongoDBStefano Dindo
 
Introduzione al Test Driven Development
Introduzione al Test Driven DevelopmentIntroduzione al Test Driven Development
Introduzione al Test Driven DevelopmentEnnio Masi
 
Netbeans e Xdebug per debugging e profiling di applicazioni PHP
Netbeans e Xdebug per debugging e profiling di applicazioni PHPNetbeans e Xdebug per debugging e profiling di applicazioni PHP
Netbeans e Xdebug per debugging e profiling di applicazioni PHPGiorgio Cefaro
 
Introduzione a Matlab
Introduzione a MatlabIntroduzione a Matlab
Introduzione a MatlabMarco Suma
 
PostgrSQL 9.3&9.4 - DjangoVillage
PostgrSQL 9.3&9.4 - DjangoVillagePostgrSQL 9.3&9.4 - DjangoVillage
PostgrSQL 9.3&9.4 - DjangoVillageMiriade Spa
 
Progettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
Progettazione e sviluppo di applicazioni web 2.0 con PHP e AjaxProgettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
Progettazione e sviluppo di applicazioni web 2.0 con PHP e AjaxGiovanni Cappellini
 
Come l’Open Source può essere alla base di un business di successo: il caso H...
Come l’Open Source può essere alla base di un business di successo: il caso H...Come l’Open Source può essere alla base di un business di successo: il caso H...
Come l’Open Source può essere alla base di un business di successo: il caso H...MariaDB plc
 

Similar a Office & VBA - Giorni 4 e 5 (20)

How create a single page apps using html5 and javascript
How create a single page apps using html5 and javascript How create a single page apps using html5 and javascript
How create a single page apps using html5 and javascript
 
Maria Grazia Maffucci- programmazione presentazione
Maria Grazia Maffucci- programmazione presentazioneMaria Grazia Maffucci- programmazione presentazione
Maria Grazia Maffucci- programmazione presentazione
 
MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009
 
MongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework MeetingMongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework Meeting
 
Introduzione a node.js
Introduzione a node.jsIntroduzione a node.js
Introduzione a node.js
 
Introduzione a Node.js
Introduzione a Node.jsIntroduzione a Node.js
Introduzione a Node.js
 
Deploy MongoDB su Infrastruttura Amazon Web Services
Deploy MongoDB su Infrastruttura Amazon Web ServicesDeploy MongoDB su Infrastruttura Amazon Web Services
Deploy MongoDB su Infrastruttura Amazon Web Services
 
#dd12 grillo daniele_xpages_tips_tricks_rev2
#dd12 grillo daniele_xpages_tips_tricks_rev2#dd12 grillo daniele_xpages_tips_tricks_rev2
#dd12 grillo daniele_xpages_tips_tricks_rev2
 
Logging
LoggingLogging
Logging
 
Vb.Net
Vb.NetVb.Net
Vb.Net
 
Php mysql3
Php mysql3Php mysql3
Php mysql3
 
Linuxday2013
Linuxday2013 Linuxday2013
Linuxday2013
 
MongoDB User Group Padova - Overviews iniziale su MongoDB
MongoDB User Group Padova - Overviews iniziale su MongoDBMongoDB User Group Padova - Overviews iniziale su MongoDB
MongoDB User Group Padova - Overviews iniziale su MongoDB
 
Introduzione al Test Driven Development
Introduzione al Test Driven DevelopmentIntroduzione al Test Driven Development
Introduzione al Test Driven Development
 
Netbeans e Xdebug per debugging e profiling di applicazioni PHP
Netbeans e Xdebug per debugging e profiling di applicazioni PHPNetbeans e Xdebug per debugging e profiling di applicazioni PHP
Netbeans e Xdebug per debugging e profiling di applicazioni PHP
 
Introduzione a Matlab
Introduzione a MatlabIntroduzione a Matlab
Introduzione a Matlab
 
PostgrSQL 9.3&9.4 - DjangoVillage
PostgrSQL 9.3&9.4 - DjangoVillagePostgrSQL 9.3&9.4 - DjangoVillage
PostgrSQL 9.3&9.4 - DjangoVillage
 
Java lezione 14
Java lezione 14Java lezione 14
Java lezione 14
 
Progettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
Progettazione e sviluppo di applicazioni web 2.0 con PHP e AjaxProgettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
Progettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
 
Come l’Open Source può essere alla base di un business di successo: il caso H...
Come l’Open Source può essere alla base di un business di successo: il caso H...Come l’Open Source può essere alla base di un business di successo: il caso H...
Come l’Open Source può essere alla base di un business di successo: il caso H...
 

Más de Diego La Monica

E se non avessi davvero bisogno di un app?
E se non avessi davvero bisogno di un app?E se non avessi davvero bisogno di un app?
E se non avessi davvero bisogno di un app?Diego La Monica
 
Analisi comportamentale nelle app: pensare agli introiti contrasta con l'util...
Analisi comportamentale nelle app: pensare agli introiti contrasta con l'util...Analisi comportamentale nelle app: pensare agli introiti contrasta con l'util...
Analisi comportamentale nelle app: pensare agli introiti contrasta con l'util...Diego La Monica
 
Ideare un app e farla fruttare: quanti modi? Quale scegliere?
Ideare un app e farla fruttare: quanti modi? Quale scegliere?Ideare un app e farla fruttare: quanti modi? Quale scegliere?
Ideare un app e farla fruttare: quanti modi? Quale scegliere?Diego La Monica
 
Cordova: un viaggio di sola andata
Cordova: un viaggio di sola andataCordova: un viaggio di sola andata
Cordova: un viaggio di sola andataDiego La Monica
 
App di successo - quali strumenti? e le performance?
App di successo - quali strumenti? e le performance?App di successo - quali strumenti? e le performance?
App di successo - quali strumenti? e le performance?Diego La Monica
 
Applicazioni mobili: strumenti, costi soluzioni e peformance
Applicazioni mobili: strumenti, costi soluzioni e peformanceApplicazioni mobili: strumenti, costi soluzioni e peformance
Applicazioni mobili: strumenti, costi soluzioni e peformanceDiego La Monica
 
App di successo quali strumenti? e le performance?
App di successo quali strumenti? e le performance?App di successo quali strumenti? e le performance?
App di successo quali strumenti? e le performance?Diego La Monica
 
Presentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successoPresentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successoDiego La Monica
 
Presentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successoPresentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successoDiego La Monica
 
Strategie per applicazioni web prima o meglio dell'app nativa
Strategie per applicazioni web prima o meglio dell'app nativaStrategie per applicazioni web prima o meglio dell'app nativa
Strategie per applicazioni web prima o meglio dell'app nativaDiego La Monica
 
Applicazioni mobili: dall'ideazione alla pubblicazione
Applicazioni mobili: dall'ideazione alla pubblicazioneApplicazioni mobili: dall'ideazione alla pubblicazione
Applicazioni mobili: dall'ideazione alla pubblicazioneDiego La Monica
 
Competenze per lo sviluppo software nellera del web
Competenze per lo sviluppo software nellera del webCompetenze per lo sviluppo software nellera del web
Competenze per lo sviluppo software nellera del webDiego La Monica
 
Siti web, Portali, Rich Internet Application: tendenze e controtendenze
Siti web, Portali, Rich Internet Application: tendenze e controtendenzeSiti web, Portali, Rich Internet Application: tendenze e controtendenze
Siti web, Portali, Rich Internet Application: tendenze e controtendenzeDiego La Monica
 
I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)Diego La Monica
 
I linguaggi del web - seconda edizione (2° giornata)
I linguaggi del web - seconda edizione (2° giornata)I linguaggi del web - seconda edizione (2° giornata)
I linguaggi del web - seconda edizione (2° giornata)Diego La Monica
 
I linguaggi del web - seconda edizione (1° giornata)
I linguaggi del web - seconda edizione (1° giornata)I linguaggi del web - seconda edizione (1° giornata)
I linguaggi del web - seconda edizione (1° giornata)Diego La Monica
 

Más de Diego La Monica (20)

E se non avessi davvero bisogno di un app?
E se non avessi davvero bisogno di un app?E se non avessi davvero bisogno di un app?
E se non avessi davvero bisogno di un app?
 
Analisi comportamentale nelle app: pensare agli introiti contrasta con l'util...
Analisi comportamentale nelle app: pensare agli introiti contrasta con l'util...Analisi comportamentale nelle app: pensare agli introiti contrasta con l'util...
Analisi comportamentale nelle app: pensare agli introiti contrasta con l'util...
 
Ideare un app e farla fruttare: quanti modi? Quale scegliere?
Ideare un app e farla fruttare: quanti modi? Quale scegliere?Ideare un app e farla fruttare: quanti modi? Quale scegliere?
Ideare un app e farla fruttare: quanti modi? Quale scegliere?
 
Cordova: un viaggio di sola andata
Cordova: un viaggio di sola andataCordova: un viaggio di sola andata
Cordova: un viaggio di sola andata
 
Css stuffs #3
Css   stuffs #3Css   stuffs #3
Css stuffs #3
 
App di successo - quali strumenti? e le performance?
App di successo - quali strumenti? e le performance?App di successo - quali strumenti? e le performance?
App di successo - quali strumenti? e le performance?
 
Css stuffs #2
Css   stuffs #2Css   stuffs #2
Css stuffs #2
 
Css stuffs #1
Css   stuffs #1Css   stuffs #1
Css stuffs #1
 
Applicazioni mobili: strumenti, costi soluzioni e peformance
Applicazioni mobili: strumenti, costi soluzioni e peformanceApplicazioni mobili: strumenti, costi soluzioni e peformance
Applicazioni mobili: strumenti, costi soluzioni e peformance
 
App di successo quali strumenti? e le performance?
App di successo quali strumenti? e le performance?App di successo quali strumenti? e le performance?
App di successo quali strumenti? e le performance?
 
Presentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successoPresentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successo
 
Presentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successoPresentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successo
 
Strategie per applicazioni web prima o meglio dell'app nativa
Strategie per applicazioni web prima o meglio dell'app nativaStrategie per applicazioni web prima o meglio dell'app nativa
Strategie per applicazioni web prima o meglio dell'app nativa
 
Applicazioni mobili: dall'ideazione alla pubblicazione
Applicazioni mobili: dall'ideazione alla pubblicazioneApplicazioni mobili: dall'ideazione alla pubblicazione
Applicazioni mobili: dall'ideazione alla pubblicazione
 
Competenze per lo sviluppo software nellera del web
Competenze per lo sviluppo software nellera del webCompetenze per lo sviluppo software nellera del web
Competenze per lo sviluppo software nellera del web
 
SVN/TRAC
SVN/TRACSVN/TRAC
SVN/TRAC
 
Siti web, Portali, Rich Internet Application: tendenze e controtendenze
Siti web, Portali, Rich Internet Application: tendenze e controtendenzeSiti web, Portali, Rich Internet Application: tendenze e controtendenze
Siti web, Portali, Rich Internet Application: tendenze e controtendenze
 
I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)
 
I linguaggi del web - seconda edizione (2° giornata)
I linguaggi del web - seconda edizione (2° giornata)I linguaggi del web - seconda edizione (2° giornata)
I linguaggi del web - seconda edizione (2° giornata)
 
I linguaggi del web - seconda edizione (1° giornata)
I linguaggi del web - seconda edizione (1° giornata)I linguaggi del web - seconda edizione (1° giornata)
I linguaggi del web - seconda edizione (1° giornata)
 

Office & VBA - Giorni 4 e 5

  • 1. giorno2-100321110649-phpapp02 Autore: - http://diegolamonica.info Email:me@diegolamonica.info Office & VBA ●Apprendere l'utilizzo avanzato della suite MS Office ●Object Linking Exchange (OLE) ●Visual Basic for Applications (VBA)
  • 2. giorno2-100321110649-phpapp02 Autore: - http://diegolamonica.info Email:me@diegolamonica.info Che cos'è Microsoft Office? È una suite applicativa costituita da una serie di strumenti differenziati in dipendenza della versione posseduta
  • 3. giorno2-100321110649-phpapp02 Autore: - http://diegolamonica.info Email:me@diegolamonica.info Riassunto della prima giornata ✔ Microsof Access è un RDBMS con interfaccia grafica che fonde l'architettura JET a una semplice interfaccia grafica ✔ I campi sono i dati elementari mentre le tabelle raggruppano più campi (es. rubrica indirizzi: ciascun nominativo è un insieme di più campi) ✔ Le query sono particolari rappresentazioni delle tabelle che riportano solo le informazioni che rispondono a determinati criteri ✔ La rappresentazione gerarchica delle tabelle è identificato dalle relazioni. ✔ Le interfacce sono uno strumento per rappresentare i dati in un modo “user friendly”.
  • 4. giorno2-100321110649-phpapp02 Autore: - http://diegolamonica.info Email:me@diegolamonica.info Riassunto della seconda giornata – 1 ✔ Esistono componenti standard e componenti avanzati da poter aggiungere alle interfacce. ✔ Un particolare componente avanzato è identificato dalle sottomaschere. ✔ Una macro corrisponde ad un insieme di operazioni eseguite in sequenza. È possibile impostare condizioni per il flusso delle operazioni. ✔ Le maschere di Microsoft Access sono orientate agli eventi che vengono scatenati dall'interazione dell'utente con i componenti dell'interfaccia. ✔ Ad un'evento si può associare una sola azione (Macro / Codice VBA)
  • 5. giorno2-100321110649-phpapp02 Autore: - http://diegolamonica.info Email:me@diegolamonica.info Riassunto della seconda giornata – 2 ✔ VBA è un linguaggio di scripting che ha le medesime regole di Visual Basic ✔ Una variabile è definita tramite la parola chiave Dim e di default ha una visibilità limitata (Dim o Private) o può essere di tipo Public ✔ Ad una variabile è possibile assegnare un valore, un'altra variabile o il risultato di un'espressione. ✔ Le classi sono strutture che raggruppano proprietà e metodi ✔ I componenti delle maschere sono classi che implementano un'interfaccia grafica e gli eventi.
  • 6. giorno2-100321110649-phpapp02 Autore: - http://diegolamonica.info Email:me@diegolamonica.info Riassunto della terza giornata ✔ Una variabile booleana può assumere solo 2 valori: True o False. ✔ Esistono operatori per le variabili booleane (And, Or, Xor, Not) ✔ Un blocco condizionale viene eseguito solo al verificarsi di una precisa condizione (“if then else” e “select case”). ✔ I cicli iterativi sono blocchi di codice che vengono ripetuti fino al verificarsi di una precisa condizione (for, while, do while e do until). ✔ Per forzare l'uscita da un ciclo si usa il comando “exit” seguito dall'identificatore del ciclo (“exit for”, “exit do”, “exit while”). ✔ Per le procedure (sub) e le funzioni (function) esistono analoghi comandi di uscita (“exit sub” “exit function”)
  • 7. giorno2-100321110649-phpapp02 Autore: - http://diegolamonica.info Email:me@diegolamonica.info Il programma del corso – 4° giorno ● Accesso ai dati tramite scripting (nel database corrente) ● In pratica: progettare un database da zero ● Nascondere tabelle, query e maschere a tutti gli utenti
  • 8. giorno2-100321110649-phpapp02 Autore: - http://diegolamonica.info Email:me@diegolamonica.info Il database corrente La tecnologica di base con cui da VBA è possibile accedere ad un Database è DAO (Data Access Object). Application.CurrentDB è il Database di Access da cui verrà eseguito il codice VBA in esecuzione. Esistono diversi metodi nell'oggetto Application.CurrentDB. I più importanti sono: ✔ Execute: esegue un'operazione SQL che non restituisce risultati (es. update, delete, insert). ✔ OpenRecordset: utilizzata per eseguire una query che restituisce dei dati da poter immagazzinare in un oggetto denominato Recordset. Per tutti i metodi e le proprietà consultare la documentazione contestuale.
  • 9. giorno2-100321110649-phpapp02 Autore: - http://diegolamonica.info Email:me@diegolamonica.info Interrogare una tabella Set Rs = Application.CurrentDB.OpenRecordset(QuerySQL) Esegue la query QuerySQL sul database corrente e ne acquisisce tutte le righe di cui si prevede l'estrazione fornendo un oggetto denominato Recordset che consente di navigare i dati della tabella. Il puntatore (Recordset) parte dalla prima riga (Record) disponibile. QuerySQL può essere il nome di una tabella, il nome di una query o una query di interrogazione (select … from … where … )
  • 10. giorno2-100321110649-phpapp02 Autore: - http://diegolamonica.info Email:me@diegolamonica.info Metodi del Recordset ✔ metodi per la navigazione del record: ✔ MoveFirst: sposta il cursore alla prima riga dell'interrogazione ✔ MovePrevious: sposta il cursore alla riga precedente rispetto a quella corrente. ✔ MoveNext: sposta il cursore alla riga successiva a quella corrente ✔ MoveLast: sposta il cursore all'ultima riga disponibile nel recordset. ✔ Metodi per l'aggiornamento del record: ✔ Delete: cancella il record corrente ✔ AddNew: Predispone la tabella principale ad ospitare nuovi dati ✔ Update: Applica le modifiche o il salvataggio.
  • 11. giorno2-100321110649-phpapp02 Autore: - http://diegolamonica.info Email:me@diegolamonica.info Proprietà del Recordset ✔ EOF: Valore booleano in sola lettura: restituisce True se non ci sono più record da leggere. ✔ BOF:Valore booleano in sola lettura. Restituisce True se siamo al primo record. ✔ RecordCount: restituisce il numero di record ottenuti dall'interrogazione. ✔ Fields: è una proprietà particolare definita a sua volta come una collezione di oggetti Field. ✔ Ciascun Field corrisponde ad una colonna della tabella interrogata. ✔ Accedere ad un Field se non c'è un record corrente si genera un'errore di run-time.
  • 12. giorno2-100321110649-phpapp02 Autore: - http://diegolamonica.info Email:me@diegolamonica.info Esempio di interrogazione DB Dim DB As Database Dim Rs As Recordset Set DB = Application.CurrentDB Set Rs = DB.OpenRecordset(“Anagrafica”) Do While Not Rs.eof Debug.Print Rs(“Cognome”) & “ “ & Rs(“Nome”) Rs.MoveNext Loop Rs.Close Set Rs = Nothing
  • 13. giorno2-100321110649-phpapp02 Autore: - http://diegolamonica.info Email:me@diegolamonica.info Progettare un DB da zero Un'agenzia di scommesse ha richiesto la progettazione un simulatore di corse ippiche che soddifi i seguenti requisiti: ✔ Bisogna mantenere memoria degli scommettitori ✔ Bisogna poter gestire un'anagrafica dei cavalli ✔ Il sistema di vincite deve poter gestire scommesse per piazzamento ✔ È necessario prevedere che il sistema simuli una corsa completa ✔ è dovranno essere il rispettate le seguenti condizioni: ✔ 0.1% di possibilità che un cavallo si infortuni ✔ 30% di possibilità che non avanzi rispetto agli altri ✔ Il restante 59.9% che il cavallo avanzi verso il traguardo ✔ Per ciascuna corsa bisogna tener traccia delle vincite
  • 14. giorno2-100321110649-phpapp02 Autore: - http://diegolamonica.info Email:me@diegolamonica.info Nascondere gli oggetti del DB Per maggiore sicurezza tutti gli oggetti necessari al funzionamento dell'applicazione Access è possibile nasconderli. Per visualizzare successivamente gli oggetti nascosti abilitare l'opzione dal menu “strumentiopzioni”
  • 15. giorno2-100321110649-phpapp02 Autore: - http://diegolamonica.info Email:me@diegolamonica.info Il programma del corso – 5° giorno ● Collegarsi a tabelle in un altro Database ● Interrogare altre basi dati tramite VBA