2009-07-07 54 views
4

如何開始打開與Excel 2007電子表格的ADO連接?打開ADO連接到VBA中的Excel電子表格

我這樣做是爲了將數據導入到Access 2007中。相當惱人的是,數據需要在導入之前進行過濾和預處理,因此我想打開一個ADO連接來讀取它。

回答

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 

請注意,您需要使用ACE driver而不是JET。另請參閱Connection strings for Excel 2007

1

如果您打算多次運行導入(即:某種類型的每日報告服務),則可能需要嘗試與ADO不同的方法。

我最終在Access中創建了一個預處理Excel工作表的模塊(因爲每天導入的工作表發生更改),然後將工作表設置爲鏈接表的源。然後,我使用「INSERT INTO」調用查詢鏈接表,以便將數據從Excel中取出並存入數據庫。

如果你願意,我可以更多地瞭解具體情況。

+0

您可以創建鏈接表並使用ADO執行INSERT INTO語句。 – onedaywhen 2009-07-07 20:03:14

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 
相關問題