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:
Tutto funziona ma è eccessivamente lento (impiega minuti per poche centinaia di righe).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
Qualcuno sa se esista un metodo più veloce per ottenere lo stesso risultato?

Rispondi quotando