Ho fatto un software con macro di access che legge da una tabella di access e scrive i valori all'interno di un foglio di Excel.
Il codice è più o meno questo:
codice:
Dim riga As Integer
Dim oApp As Object
Dim SQL1 As String
Dim row1 As New ADODB.Recordset
Dim dbname1 As New ADODB.Connection
dbname1.Provider = "Microsoft.Jet.OLEDB.4.0"
dbname1.Open cartellainstallazione & "back.mdb"
SQL1 = "SELECT Tabella1.campo1, Tabella1.campo2, Tabella1.campo3, Tabella1.campo4 FROM Tabella1"
row1.Open SQL1, dbname1
Set oApp = CreateObject("Excel.Application")
oApp.Workbooks.Open Modello
oApp.Visible = True
riga = 2
With row1
Do While Not .EOF
oApp.Sheets(NomeFoglioTSO).Cells(riga, 1) = .Fields(0) & " - " & .Fields(2)
oApp.Sheets(NomeFoglioTSO).Cells(riga, 2) = .Fields(0)
oApp.Sheets(NomeFoglioTSO).Cells(riga, 3) = .Fields(1)
oApp.Sheets(NomeFoglioTSO).Cells(riga, 4) = .Fields(2)
oApp.Sheets(NomeFoglioTSO).Cells(riga, 5) = .Fields(3)
riga = riga + 1
.MoveNext
Loop
End With
row1.Close
oApp.Workbooks.Save
oApp.Workbooks.Close
oApp.Application.Quit
Set oApp = Nothing
Tutto funziona ma è eccessivamente lento (impiega minuti per poche centinaia di righe).
Qualcuno sa se esista un metodo più veloce per ottenere lo stesso risultato?