2009-07-07 2 views

Antwort

6
Set oConn = CreateObject("ADODB.Connection") 
oConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\MyExcel2007File.xlsx;Extended Properties=""Excel 12.0 Xml;HDR=YES"";" 
oConn.Open 

Beachten Sie, dass die ACE driver statt JET verwenden müssen. Siehe auch Connection strings for Excel 2007.

1

Wenn Sie den Import mehr als einmal ausführen (z. B. eine Art von täglichem Berichtsdienst), sollten Sie einen anderen Ansatz als ADO ausprobieren.

Ich habe am Ende ein Modul in Access erstellt, das Excel-Blätter vorverarbeitet (seit dem Blatt, das jeden Tag Änderungen importiert) und legt dann das Blatt als Quelle einer verknüpften Tabelle. Dann frage ich die verknüpfte Tabelle mit einem "INSERT INTO" DoCmd.RunSQL Aufruf, um die Daten aus Excel und in die DB zu bekommen.

Wenn Sie möchten, kann ich mehr in Einzelheiten gehen.

+0

Sie können verknüpfte Tabellen erstellen und INSERT INTO-Anweisungen mit ADO ausführen. – onedaywhen

1
Set cnn = New ADODB.Connection 
    'cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & sFullFileName & ";Extended Properties = Excel 12.0 Macro; HDR=No;" 
    'cnn.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0; data source=" & sFullFileName & ";Extended Properties=Excel 8.0" 
    cnn.ConnectionString = "DRIVER={Microsoft Excel Driver (*.xls)};ReadOnly=1;DBQ=" & sFullFileName 
    cnn.Open