批量导出从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