ActiveX Data Objects (
ADO) è un'interfaccia ad oggetti di alto livello che consente alle applicazioni in VBA di leggere, scrivere, aggiornare ed eliminare dati da un database che supporta la teconologia OLE DB.
In questo caso l'esempio è per un DB in Access; ma è interesasnte notare che non è necessario aver istallato access sul pc per poter utilizzare questi metodi.
Collegamento alla libreria ADO
Per indicare il riferimento alla libreria da utlizzare, dal menù:
Strumenti --> Riferimenti è necessario selezionare la voce
Microsoft ActiveX Data Objects Recordset X.X library
DataLink
Creando il datalink
ADO via codice:
FileDB =
Application.
ThisWorkbook.Path +"\FileDatabase.accdb"
Provider= "Microsoft.ACE.OLEDB.12.0"
DataLink = "Provider=" + Provider + ";Data Source=" + FileDB + ";Persist Security Info=False"
Per il tipo di provider, per Access, possono essere usati:
- 32bit: Microsoft.Jet.OLEDB.4.0
- 64bit: Microsoft.ACE.OLEDB.12.0
Connection
L'oggetto
connection è quello che gestisce la connessione al database attraverso i suoi metodi e le sue proprietà.
Per creare a aprire la connesione:
Oppure in un unico passaggio:
Recordset
L'oggetto
recordset è utilizzato generalemnte per poter eseguire le query ed accederne ai risultati, è possibile utilizzarlo anche per scrivere sulle tabelle.
Ad esempio per leggere tutti i recordo di una tabella:
Command
L'oggetto
command consente di eseguire query su DB, ad esempio quelle di modifica che non restituiscono risultati, le query parametriche, le stored procedure.
Non sempre è necessario creare un oggetto command possiamo eseguire un comando direttamente dall'oggetto command:
Cmd.
Execute "Delete from NomeTabella"
Un esempio "scolastico" di uso di un oggetto command per eseguire una query è questo:
Altri modi per aprire una connessione
Volendo rendere indipendente il collegamento
ADO dal codice (ad esempio se il codice è protetto da password) è possibile anche utilizzare un
datalink esterno contantuto in un file UDL, in questo modo:
In alternativa alla dichiarazione della libreria da usare gli oggetti possono essere creati anche con la funzione
CreateObject, utilizzando quella che sia chiama "
associazione tardiva: