ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 5997|回复: 12

[求助] excel数据批量追加到SQL server指定表

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-9-3 11:34 | 显示全部楼层 |阅读模式
excel与SQLserver数据库的连接已经建好,可以实现从数据库查询数据,但是 追加数据的时候提示 运行错误,“尚未注册 oLE DB 访问接口“Microsoft.ACE.OLEDB.12.0””
代码如下:Sql = "insert INTO 测试表(年度,期间,客户编码,数量金额)" _
        & "select 年度,期间,客户编码,数量金额 FROM OpenDataSource( 'Microsoft.ACE.OLEDB.12.0','Data Source=" & ThisWorkbook.FullName & ";User ID=Admin;Password=;Extended properties=Excel 12.0')...[测试$] "

请教各位大神帮忙





123123123.png

TA的精华主题

TA的得分主题

发表于 2018-9-3 13:20 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
使用SqlBulkCopy将DataTable中的数据批量插入数据库中

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-3 13:49 | 显示全部楼层
opiona 发表于 2018-9-3 13:20
使用SqlBulkCopy将DataTable中的数据批量插入数据库中

老师您好,能不能介绍下具体的用法,这个实在是不会用

TA的精华主题

TA的得分主题

发表于 2018-9-3 13:57 | 显示全部楼层
  1. Sql = "insert INTO 测试表(年度,期间,客户编码,数量金额)" _
  2.         & "select 年度,期间,客户编码,数量金额 FROM [Excel 12.0;imex=0;Database=" & ThisWorkbook.FullName & "].[测试$] "
复制代码

TA的精华主题

TA的得分主题

发表于 2018-9-3 13:58 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
opiona 发表于 2018-9-3 13:20
使用SqlBulkCopy将DataTable中的数据批量插入数据库中

同3楼问,请赐教一下

TA的精华主题

TA的得分主题

发表于 2018-9-3 14:00 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-3 14:02 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

这个可以追加到Access中没问题,但是追加到SQL server 提示 【测试&】这个对象名无效。不知道怎样才能批量的追加到 SQL server中

TA的精华主题

TA的得分主题

发表于 2018-9-3 14:14 | 显示全部楼层
qincf0202 发表于 2018-9-3 14:02
这个可以追加到Access中没问题,但是追加到SQL server 提示 【测试&】这个对象名无效。不知道怎样才能批 ...

假如是这样,你的SQL服务器必须开启OpenDataSource功能才能使用你的语句

TA的精华主题

TA的得分主题

发表于 2018-9-3 14:18 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
SqlBulkCopy是vb.net的SQL引擎功能
将Excel查询到的数据 装入DataTable中
使用 SqlBulkCopy能很快导入到SQL Server
5列10W行 本地数据库测试结果:不到1秒

TA的精华主题

TA的得分主题

发表于 2018-9-3 20:51 | 显示全部楼层
VB.NET 需要制作成dll
下面这个VBA中即可实现。速度未测试
  1. Rem 添加Excel数据到SQLSERVER
  2.     Str_coon = "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties='Excel 12.0;HDR=yes';Data Source =" & ThisWorkbook.FullName     '//OFFICE2007
  3.     StrSQL = "INSERT INTO "
  4.     StrSQL = StrSQL & " [odbc;Driver={SQL Server};"  '//在空格+[:后面是固定格式
  5.     StrSQL = StrSQL & "Server=XXXX;"              '//服务器名称或地址
  6.     StrSQL = StrSQL & "Database=XXXX;"             '//数据库名称
  7.     StrSQL = StrSQL & "UID=sa;PWD=XXXX"             '//用户名,密码
  8.     StrSQL = StrSQL & ".USID"                        '//.[数据表名]
  9.     StrSQL = StrSQL & " SELECT 编号,姓名,数量 FROM [Sheet1$]"  '//前面有一个空格
  10.     Bool_1 = AddDelMove(StrSQL, Str_coon)
  11.     MsgBox Bool_1
  12. End Sub
复制代码

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-13 15:39 , Processed in 0.025198 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表