L'esempio che segue mostra come sia possibile molto semplicemente, oltre che leggere i dati, scriverli su di un database.
La macro sotto cancella tutti i dati dalla tabella "listino" sul database e riscrive interamente i valori presenti sul file Excel (nell'esempio trovate anche la parte che legge i dati):
Sub ScriviSuDatabase()
' per collegare la libreria ADO:
' Strumenti --> Riferimenti --> Microsoft ActiveX Data Objects Recordset 2.8 library
Dim Cn
As ADODB.
Connection
Dim T1
As ADODB.
Recordset
'--- Percorso del DB in Access nella stesa cartella in cui รจ contenuto il file in Excel ---
FileDB =
Application.
ThisWorkbook.Path & "\DbDemo.accdb"
'--- Link ADO al DB Access---
Set Cn =
New ADODB.
Connection
Provider = "Microsoft.ACE.OLEDB.12.0"
DataLink = "Provider=" + Provider + ";Data Source=" + FileDB + ";Persist Security Info=False"
Cn.
Open DataLink
'--- Cancella i dati precedenti ---
StQ = "Delete from Listino"
Cn.
Execute StQ
'--- Crea la query ---
Set T1 =
New ADODB.
Recordset
StQ = "SELECT * From Listino"
T1.
Open StQ, Cn, adOpenKeyset, adLockOptimistic, adCmdText
'--- Scrive i dati sulla tabella ---
r = 5
While Cells(r, 2) <> ""
T1.AddNew
T1.Fields("CodiceArticolo") =
Cells(r, 2)
T1.Fields("Prezzo") =
Cells(r, 4)
T1.Update
r = r + 1
Wend
T1.
Close
Cn.
Close
End Sub