ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 请教如何用excel追加写入access

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2013-11-22 20:00 | 显示全部楼层
本帖已被收录到知识树中,索引项:ADO技术
原来用的是前期绑定,下面用后期绑定:
  1. Sub excel追加写入access()
  2.     Dim cnn As Object, rs As Object
  3.     Dim myPath As String
  4.     Dim myTable As String
  5.     Dim SQL As String
  6.     myPath = ThisWorkbook.Path & "\数据库.accdb"
  7.     myTable = "提案具体事项"
  8.     On Error GoTo errmsg
  9.     Set cnn = CreateObject("ADODB.Connection")
  10.     Set rs = CreateObject("ADODB.Recordset")

  11.     cnn.Open "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=" & myPath '连接数据库
  12.    
  13.     '生成数据库不存在记录的SQL语句
  14.     SQL = "select a.* from [Excel 12.0;Database=" & ActiveWorkbook.FullName & "].[Sheet1$" & Range("a1").CurrentRegion.Address(0, 0) _
  15.         & "] a left join " & myTable & " b on a.现状问题描述=b.现状问题描述 where b.现状问题描述 is null"
  16.     Set rs = New ADODB.Recordset
  17.     rs.Open SQL, cnn, 1, 3
  18.    
  19.     '插入数据库不存在记录
  20.     If rs.RecordCount > 0 Then '如果工作表中含有数据库不存在记录
  21.         SQL = "insert into " & myTable & " " & SQL '插入新记录SQL语句
  22.         cnn.Execute SQL
  23.         MsgBox rs.RecordCount & "行数据已经添加到数据库!", vbInformation, "添加数据"
  24.     Else
  25.          MsgBox "工作表的数据数据库中已经存在。", vbInformation, "添加数据失败"
  26.     End If
  27.    
  28.     '关闭连接释放内存
  29.     rs.Close
  30.     cnn.Close
  31.     Set rs = Nothing
  32.     Set cnn = Nothing
  33.     Exit Sub
  34. errmsg:
  35.     MsgBox Err.Description, , "错误报告"
  36. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-11-22 20:01 | 显示全部楼层
请看附件
后期绑定.rar (36.31 KB, 下载次数: 219)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-11-22 20:12 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
zhaogang1960 发表于 2013-11-22 20:01
请看附件

还是不行,不知什么原因,查找相关资料也不能解决。

430 类不支持自动化 (Automation) 或不支持期待的接口

http://club.excelhome.net/forum.php?mod=viewthread&tid=986176

TA的精华主题

TA的得分主题

发表于 2013-11-22 21:19 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
张雄友 发表于 2013-11-22 20:12
还是不行,不知什么原因,查找相关资料也不能解决。

430 类不支持自动化 (Automation) 或不支持期待的 ...

需要Excel2007或以上才支持

TA的精华主题

TA的得分主题

发表于 2013-11-22 21:21 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
zhaogang1960 发表于 2013-11-22 21:19
需要Excel2007或以上才支持

我安装了2003,与2010,难道是相冲突?{:soso_e118:}

TA的精华主题

TA的得分主题

发表于 2013-11-22 21:36 | 显示全部楼层
张雄友 发表于 2013-11-22 21:21
我安装了2003,与2010,难道是相冲突?

不冲突,你引用你下看看有没有下图项目,如果有就没有问题: 捕获.PNG

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-11-22 21:41 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
zhaogang1960 发表于 2013-11-22 21:36
不冲突,你引用你下看看有没有下图项目,如果有就没有问题:

问题解决了,原因在于:
是引用Microsoft ActiveX Data Objects 2.0 Library


而不是引用Microsoft ActiveX Data Objects 2.8 Library

点评

引用哪个不重要,关键要引用你电脑中有的  发表于 2013-11-22 21:43

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-11-23 10:28 | 显示全部楼层
zhaogang1960 发表于 2013-11-22 21:36
不冲突,你引用你下看看有没有下图项目,如果有就没有问题:

你好,这个引用和宏可不可以写成批处理或者vbs文件,就是只要执行vbs或者bat文件就可以完成整个导入数据库的工作而不用打开Excel?

TA的精华主题

TA的得分主题

发表于 2013-11-23 13:39 | 显示全部楼层
llfccc 发表于 2013-11-23 10:41
你好,我这个测试成功了,那这里能否不导入编号那一列呢,因为这样的话编号相同就无法导入了,让access中 ...

请测试:
excel追加写入数据库(自动编号).rar (36.94 KB, 下载次数: 328)

TA的精华主题

TA的得分主题

发表于 2015-12-4 15:53 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
如果我现在想要先把access中的数据清空 再将现在电子表中的数据加入到access中如何做到
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-22 00:49 , Processed in 0.047221 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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