批量导出从Excel到SQL Server 2014年

testing连接错误。

SQL.ActiveConnection = Cn FROM (OPENROWSET('Microsoft.Jet.OLEDB.4.0','Data Source=C:\Path\To\File.xls;Extended Properties=Excel 8.0;HDR=YES', Sheet1$)) wb End Sub 

如果你有SSIS,走这条路线会更好更快。 这样做将意味着它不再是一个出口过程; 这将是一个导入将在SQL Server和SSIS中执行的所有任务。

考虑使用OPENROWSET到Excel工作簿的SQL Server分布式查询。 下面假设您拥有运行MSSQL命令的权限,并且您的Excel文件具有标题:

 INSERT INTO [dbSomething].[dbo].[tbl_Test] ([MyFieldValue]) SELECT wb.ColumnName FROM (OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Data Source=C:\Path\To\File.xlsx;Extended Properties=Excel 12.0;HDR=YES', Sheet1$)) wb 

或者,对于较旧的工作簿types:

 INSERT INTO [dbSomething].[dbo].[tbl_Test] ([MyFieldValue]) SELECT wb.ColumnName FROM (OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Data Source=C:\Path\To\File.xls;Extended Properties=Excel 8.0;HDR=YES', Sheet1$)) wb 

要运行此操作查询,请将整个SQL放入VBAstring中并执行连接。 不需要参数化,因此也不需要ADO命令对象。

 strSQL = "INSERT INTO ... wb" Cn.Execute strSQL