2009-07-07 163 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 
相关问题