打开ADO连接到VBA中的Excel电子表格

我将如何去打开一个Excel 2007电子表格的ADO连接?

我这样做是为了将数据导入到Access 2007中。相当恼人的是,数据需要在导入之前进行过滤和预处理,因此为什么要打开一个ADO连接来读取它。

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驱动程序而不是JET。 另请参阅Excel 2007的连接string 。

如果您要多次运行导入(即:某种types的日常报告服务),则可能需要尝试与ADO不同的方法。

我最终在Access中创build了一个预处理Excel工作表的模块(因为每天都会导入工作表),然后将工作表设置为链接表的源。 然后,我使用“INSERT INTO” DoCmd.RunSQL调用来查询链接表,将数据从Excel中取出并存入数据库。

如果你愿意的话,我可以进一步细化。

  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