Office & VBA - Giorno 6

1,490 views

Published on

Accesso ai dati tramite la scrittura di codice VBA basandosi sulla tecnologia ADO e raffronto tra le due metodologie di connessione ai dati.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Office & VBA - Giorno 6

  1. 1. Office & VBA <ul><li>Apprendere l'utilizzo avanzato della suite MS Office
  2. 2. Object Linking Exchange (OLE)
  3. 3. Visual Basic for Applications (VBA) </li></ul>
  4. 4. Che cos'è Microsoft Office? È una suite applicativa costituita da una serie di strumenti differenziati in dipendenza della versione posseduta
  5. 5. Riassunto della prima giornata <ul><li>Microsof Access è un RDBMS con interfaccia grafica che fonde l'architettura JET a una semplice interfaccia grafica
  6. 6. I campi sono i dati elementari mentre le tabelle raggruppano più campi (es. rubrica indirizzi: ciascun nominativo è un insieme di più campi)
  7. 7. Le query sono particolari rappresentazioni delle tabelle che riportano solo le informazioni che rispondono a determinati criteri
  8. 8. La rappresentazione gerarchica delle tabelle è identificato dalle relazioni.
  9. 9. Le interfacce sono uno strumento per rappresentare i dati in un modo “user friendly”. </li></ul>
  10. 10. Riassunto della seconda giornata – 1 <ul><li>Esistono componenti standard e componenti avanzati da poter aggiungere alle interfacce.
  11. 11. Un particolare componente avanzato è identificato dalle sottomaschere.
  12. 12. Una macro corrisponde ad un insieme di operazioni eseguite in sequenza. È possibile impostare condizioni per il flusso delle operazioni.
  13. 13. Le maschere di Microsoft Access sono orientate agli eventi che vengono scatenati dall'interazione dell'utente con i componenti dell'interfaccia.
  14. 14. Ad un'evento si può associare una sola azione (Macro / Codice VBA) </li></ul>
  15. 15. Riassunto della seconda giornata – 2 <ul><li>VBA è un linguaggio di scripting che ha le medesime regole di Visual Basic
  16. 16. Una variabile è definita tramite la parola chiave Dim e di default ha una visibilità limitata ( Dim o Private ) o può essere di tipo Public
  17. 17. Ad una variabile è possibile assegnare un valore, un'altra variabile o il risultato di un'espressione.
  18. 18. Le classi sono strutture che raggruppano proprietà e metodi
  19. 19. I componenti delle maschere sono classi che implementano un'interfaccia grafica e gli eventi. </li></ul>
  20. 20. Riassunto della terza giornata <ul><li>Una variabile booleana può assumere solo 2 valori: True o False .
  21. 21. Esistono operatori per le variabili booleane ( And , Or , Xor , Not )
  22. 22. Un blocco condizionale viene eseguito solo al verificarsi di una precisa condizione (“ if then else ” e “ select case ”).
  23. 23. I cicli iterativi sono blocchi di codice che vengono ripetuti fino al verificarsi di una precisa condizione ( for , while , do while e do until ).
  24. 24. Per forzare l'uscita da un ciclo si usa il comando “ exit ” seguito dall'identificatore del ciclo (“ exit for ”, “ exit do ”, “ exit while ”).
  25. 25. Per le procedure ( sub ) e le funzioni ( function ) esistono analoghi comandi di uscita (“ exit sub ” “ exit function ”) </li></ul>
  26. 26. Riassunto della quarta giornata <ul><li>Gli script VBA di Microsoft Access si connettono in modo nativo al database utilizzando DAO ( Data Access Object )
  27. 27. Application.CurrentDB è il metodo che restituisce un'istanza al Database corrente
  28. 28. Tramite il metodo Execute eseguiamo una query che non restituisce risultati mentre tramite il metodo OpenRecorset interroghiamo una tabella o una query.
  29. 29. Tramite i metodi MoveFirst , MovePrevious , MoveNext e MoveLast dell'oggetto Recordset possiamo spostarci tra i record
  30. 30. Le proprietà EOF e BOF ci indicano se il cursore è posizionato alla fine o all'inizio del recordset. Mentre per leggere dal record corrente si usa la proprietà Fields o la forma abbreviata myRecordset ! FieldName (dove myRecordset è un oggetto di tipo recordset e FieldName è il nome del campo).
  31. 31. AddNew , Update e Delete servono rispettivamente per creare, confermare le modifiche ed eliminare il record corrente </li></ul>
  32. 32. Il programma del corso – 5° giorno <ul><ul><li>Collegarsi a tabelle in un altro Database
  33. 33. Interrogare altre basi dati tramite VBA </li></ul></ul>
  34. 34. Collegare tabelle esterne Tramite l'utilizzo delle funzioni native di Microsoft Access è possibile creare collegamenti a tabelle esterne: File -> Carica Dati Esterni -> Collega tabelle … Caratteristiche: <ul><ul><li>I dati risiedono fisicamente su un'altra base dati
  35. 35. L'aggiornamento delle tabelle collegate da un'altra base dati è riportato automaticamente nel nostro database
  36. 36. Riduzione della dimensione di ciascun database </li></ul></ul>
  37. 37. Progettare un DB da zero Il committente, ci ha informato dopo aver consegnato il nostro progetto che hanno un'altra banca dati dalla quale prendere alcune delle informazioni sui cavalli.: <ul><ul><ul><li>Identificare la chiave di relazione con la nuova banca dati
  38. 38. Metterla in comunicazione senza obbligare il cliente ad utilizzare il nuovo strumento di simulazione per la modifica dei contenuti
  39. 39. Modificare le relative maschere di inserimento per comprendere le nuove informazioni </li></ul></ul></ul>
  40. 40. Database con ADO (ADODB) ADO ( ActiveX Database Object ) è una libreria per la connessione ai dati da diverse origini. La sintassi per istanziare un oggetto di tipo Database è la seguente: Dim Conn as ADODB.Connection Set Conn = New ADODB.Connection
  41. 41. Connettersi ad una fonte dati Per collegarsi ad una fonte dati è necessario indicare il P rovider , configurare la proprietà ConnectionString dell'oggetto ADODB.Connection e invocare il metodo Open() : Conn.Provider =&quot;Microsoft.JET.OLEDB.4.0&quot; Conn.ConnectionString=&quot;Data Source=C:PathAlDBmioDB.mdb&quot; Call Conn.Open() Esempio di base di connessione ad un database di Microsoft Access
  42. 42. Interrogare la base dati L'oggetto Recordset della libreria ADODB a differenza di quanto accade con (l'oggetto Recordset de) la libreria DAO, si inizializza tramite il metodo Open dello stesso Recordset: Dim Conn As ADODB.Connection ' … Codice per stabilire la connessione con il DB … Dim Rs As ADODB.Recordset Set Rs = New ADODB.Recorset Rs.Open(“Select * From Anagrafica where Cognome ='Rossi'”, _ Conn, _ AdOpenKeyset, _ AdLockPessimistic)
  43. 43. Parametri del metodo Recordset.Open Recorset.Open(SQL, Connection, CursorType, LockType, Options) <ul><li>SQL : La query SQL di interrogazione della fonte dati
  44. 44. Connection : Un oggetto di tipo ADODB.Connection precedentemente instanziato e il quale ha stabilito una connessione con la fonte dati.
  45. 45. CursorType : può essere: adOpenForwardOnly , adOpenForwardOnly , adOpenDynamic , adOpenStatic
  46. 46. LockType : può essere: adLockReadOnly , adLockPessimistic , adLockOptimistic , adLockBatchOptimistic .
  47. 47. Options : descrive il tipo di oggetto riportato nel parametro SQL </li></ul>
  48. 48. Esempio di interrogazione DB con ADO Dim DB As ADODB.Connection Dim Rs As ADODB.Recordset Set DB = New ADODB.Connection DB.Provider = &quot;Microsoft.Jet.OLEDB.4.0&quot; Call DB.Open(&quot;ConnectionString=C:MioDB.mdb&quot;) Set Rs = New ADODB.Recordset Call Rs.Open(“Anagrafica”, DB, ADOpenKeyset, AdLockReadOnly) Do While Not Rs.eof Debug.Print Rs(“Cognome”) & “ “ & Rs(“Nome”) Rs.MoveNext Loop Rs.Close Set Rs = Nothing
  49. 49. Il programma del corso – 7° giorno <ul><ul><li>Il modello OLE
  50. 50. Il minimo comun denominatore: “Application”
  51. 51. Le ricevute di vincita in access: </li><ul><li>Stampa unione
  52. 52. Creare documenti da VBA </li></ul></ul></ul>

×