ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 求助EXCEL选择性地导入ACCESS里

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-17 12:08 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
秋之心 发表于 2015-11-17 11:26
代码复制过去,跟data.accdb放在同一个文件夹内,然后data.accdb里面的表名跟字段名不能改,符合这个要就 ...

秋老师,你好,我试过了,但由于未合格日报有时可能同时存在几个导致不能全部导入完,我模拟了下,您帮我看看?

选择性地导入ACCESS123.zip

63.21 KB, 下载次数: 34

TA的精华主题

TA的得分主题

发表于 2015-11-17 14:02 | 显示全部楼层
Bettyexcel 发表于 2015-11-17 12:08
秋老师,你好,我试过了,但由于未合格日报有时可能同时存在几个导致不能全部导入完,我模拟了下,您帮我 ...

表格里面有二次返修的这些要导入吗?,

TA的精华主题

TA的得分主题

发表于 2015-11-17 15:21 | 显示全部楼层
请参考:
  1. Sub 从Excel工作表中向数据表添加纪录()
  2.     Dim cnn As Object, SQL$, myTable$, sh As Worksheet
  3.     Set cnn = CreateObject("ADODB.Connection")
  4.     myTable = "不合格汇总"
  5.     cnn.Open "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\data.accdb"
  6.     For Each sh In Sheets
  7.         SQL = "INSERT INTO " & myTable & "([ACC Number],Problem) SELECT 家具号 as [ACC Number],备注 as Problem FROM [Excel 12.0;Database=" _
  8.             & ActiveWorkbook.FullName & ";].[" & sh.Name & "$" & sh.Range("A1").CurrentRegion.Address(0, 0) & "]"
  9.         cnn.Execute SQL
  10.     Next
  11.     MsgBox "纪录添加成功。", vbInformation, "添加纪录"
  12.     cnn.Close
  13.     Set cnn = Nothing
  14. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-17 15:45 | 显示全部楼层
秋之心 发表于 2015-11-17 14:02
表格里面有二次返修的这些要导入吗?,

是的,要的。可能有几个未合格日报的工作簿,而每个工作簿里有两个格式一样的工作表都一起导入。

TA的精华主题

TA的得分主题

发表于 2015-11-17 15:48 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
刚才上传代码要审查,请看附件吧
选择性地导入ACCESS.rar (38.92 KB, 下载次数: 52)

请注意,ACC Number字段不能设置为主键,因为工作表中它有很多重复值

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-17 16:23 | 显示全部楼层
zhaogang1960 发表于 2015-11-17 15:48
刚才上传代码要审查,请看附件吧

谢谢赵版。
表格有2个变化:
1  代码不是写在未合格日报表里,写在另一个工作簿里,请看附件。
2  如果一个 “家具号 ” 出现了很多问题,能否将所有问题合在一起?这样才能将ACC NUMBER设置成为主键。
不好意思,麻烦了,本人一直很菜。

选择性地导入ACCESS123.zip

63.21 KB, 下载次数: 27

TA的精华主题

TA的得分主题

发表于 2015-11-17 16:40 | 显示全部楼层
Bettyexcel 发表于 2015-11-17 16:23
谢谢赵版。
表格有2个变化:
1  代码不是写在未合格日报表里,写在另一个工作簿里,请看附件。
  1. Sub 从Excel工作表中向数据表添加纪录()
  2.     Dim Fso As Object, File As Object, cnn As Object, rs As Object, SQL$, myTable$, sh$
  3.     Set cnn = CreateObject("ADODB.Connection")
  4.     myTable = "[MS Access;pwd=;Database=" & ThisWorkbook.Path & "\data.accdb;].不合格汇总"
  5.     Set Fso = CreateObject("Scripting.FileSystemObject")
  6.     For Each File In Fso.GetFolder(ThisWorkbook.Path).Files
  7.         If File.Name Like "*.xlsx" Then
  8.             Set cnn = CreateObject("adodb.connection")
  9.             cnn.Open "provider=microsoft.Ace.oledb.12.0;extended properties=excel 12.0;data source=" & File
  10.             Set rs = cnn.OpenSchema(20)
  11.             Do Until rs.EOF
  12.                 If rs.Fields("TABLE_TYPE") = "TABLE" Then
  13.                     sh = Replace(rs("TABLE_NAME").Value, "'", "")
  14.                     If Right(sh, 1) = "$" Then
  15.                         SQL = "INSERT INTO " & myTable & "([ACC Number],Problem) SELECT 家具号 as [ACC Number],备注 as Problem FROM [" & sh & "]"
  16.                         cnn.Execute SQL
  17.                     End If
  18.                 End If
  19.                 rs.MoveNext
  20.             Loop
  21.         End If
  22.     Next
  23.     MsgBox "纪录添加成功。", vbInformation, "添加纪录"
  24.     rs.Close
  25.     cnn.Close
  26.     Set rs = Nothing
  27.     Set cnn = Nothing
  28.     Set Fso = Nothing
  29. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-11-17 16:42 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Bettyexcel 发表于 2015-11-17 16:23
谢谢赵版。
表格有2个变化:
1  代码不是写在未合格日报表里,写在另一个工作簿里,请看附件。

捕获.JPG

TA的精华主题

TA的得分主题

发表于 2015-11-17 16:43 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
请测试附件
选择性地导入ACCESS123.rar (66.87 KB, 下载次数: 46)

TA的精华主题

TA的得分主题

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

谢谢赵版。一个家具号对应的多个问题,可以将所有问题合并在一行吗?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-10 17:22 , Processed in 0.025333 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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