|
本帖最后由 opiona 于 2019-10-5 22:09 编辑
337楼:http://club.excelhome.net/forum. ... &page=34#pid9768940
有时候将大量Excel或Access数据保存到SQL Sever数据库很伤脑筋
十万,百万数据用循环,太慢
用VB.net写的DLL,实现VBA使用:SqlBulkCopy
本地测试:120,000条,保存需要:9秒
不想用插件,用下面的,速度会相差不少
测试了28万条数量:插件要:11秒,普通代码要:5分钟=300秒
- '=================================================================================================================================================批量添加
- 向其他数据库导入Excel:MySql
- StrConn = "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties='Excel 12.0;HDR=yes';Data Source =" & ThisWorkbook.FullName
- StrSQL = StrSQL & "Insert INTO"
- StrSQL = StrSQL & " [ODBC;Driver={MySql ODBC 5.3 Unicode Driver};Server=myqcloud.com;Port=7139;DB=test;UID=用户名;PWD=123;OPTION=3;].[数据表名]
- StrSQL = StrSQL & " Select 订单号,日期,订单人,'luoronghua' AS 编辑用户 FROM [首页$A:P]
- 向其他数据库导入Excel:SQL Server
- Str_coon = "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties='Excel 12.0;HDR=yes';Data Source =" & ThisWorkbook.FullName '//OFFICE2007
- StrSQL = ""
- StrSQL = StrSQL & "INSERT INTO "
- StrSQL = StrSQL & " [ODBC;Driver={SQL Server};" '//在空格+[:后面是固定格式
- StrSQL = StrSQL & "Server=" & StrNameServer & ";" '//服务器名称或地址
- StrSQL = StrSQL & "Database=" & StrNameCatalog & ";" '//数据库名称
- StrSQL = StrSQL & "UID=" & StrNameUser & ";PWD=" & StrPassWord & "]" '//用户名,密码]
- StrSQL = StrSQL & ".[" & StrNameTable & "]" '//.[数据库内的数据表名]
- StrSQL = StrSQL & " SELECT [学号],[姓名],[专业],[语文分数],[数学分数] FROM [" & SHX.Name & "$]" '//Excel中的数据获取
复制代码
|
|