ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

求助!如何将多个access数据库中的同名表合并到一个access库中

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-4-19 16:29 | 显示全部楼层 |阅读模式
本帖最后由 北国风雪0204 于 2012-4-20 09:08 编辑

大家好,我有100多个Access数据库在同一文件夹下,每个mdb库中都有一个格式、名字一样的表,现在想把这些表中的数据汇总到一个mdb文件中的一个表里面,请教模块要怎么写?我之前汇总Excel的代码如下:(不知是否改掉红色部分就行了?还是要重写代码?请高人赐教,谢谢!!)
Function ShowFolderList(folderspec)
    Dim fs, f, f1, fc, s
    s = folderspec
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder(folderspec)
    Set fc = f.Files

    For Each f1 In fc
        DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, 2012, s & "\" & f1.Name, True
    Next
End Function

备份2012BIBF编辑看稿.rar (225.17 KB, 下载次数: 102)

TA的精华主题

TA的得分主题

发表于 2012-4-20 07:48 | 显示全部楼层
一般情况下呢,如果是所有需要合并的表的结构是一样的,一般不用一个个的重新建链接
只需要建一个链接表,然后一个个的更改链接表的connect就可以了,LZ可以传几个示例库上来

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-4-20 09:02 | 显示全部楼层
Renco 发表于 2012-4-20 07:48
一般情况下呢,如果是所有需要合并的表的结构是一样的,一般不用一个个的重新建链接
只需要建一个链接表, ...

嗯,我这100多个mdb文件中都有同一个表,名字也都一样,我想把这些表都汇总到一个mdb文件的一个表里面,如果建立链接表是不是要点100多下啊,而且还不是汇到一个表里面,我现在想通过宏把这在同一目录下的100多个mdb文件中的表汇总到一起

TA的精华主题

TA的得分主题

发表于 2012-4-20 10:18 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
北国风雪0204 发表于 2012-4-20 09:02
嗯,我这100多个mdb文件中都有同一个表,名字也都一样,我想把这些表都汇总到一个mdb文件的一个表里面,如 ...

1.当然不用点N多下,做个循环调用就行了
2.表是一样的,为什么还导入一个表里呢,加个字段来区别来源的表不就行了,如果表的结构不一样,那就要看情况了

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-4-20 11:01 | 显示全部楼层
Renco 发表于 2012-4-20 10:18
1.当然不用点N多下,做个循环调用就行了
2.表是一样的,为什么还导入一个表里呢,加个字段来区别来源的表 ...

请问这循环调用怎么做呀,也要写代码么? 附件里面的两个表是例子,他们里面的表都叫“标准表”,我需要把这些“标准表”中的数据全部汇总到另一个“汇总表”里,也就是把零散数据整合到一个表,请问实现这一批量导入过程有什么好方法么?如果必须写代码,还麻烦高手指点下,我上面的代码是导入excel的,没有针对这种格式做过

TA的精华主题

TA的得分主题

发表于 2012-4-20 12:34 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
链接表也可以不用,用代码循环
for i =1 to n
    CurrentProject.Connection.Execute "select * into 表名from [" & 完全文件名 & "].表名"
next i
其中n为要汇总的文件数量,“完全文件名”是包含文件路径和文件名的字符串。重要的是如何获得“完全文件名”。假如文件名为1、2、....n,就很简单了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-4-20 13:32 | 显示全部楼层
ASLXT 发表于 2012-4-20 12:34
链接表也可以不用,用代码循环
for i =1 to n
    CurrentProject.Connection.Execute "select * into 表 ...

谢谢,我试试

TA的精华主题

TA的得分主题

发表于 2012-4-20 13:57 | 显示全部楼层
北国风雪0204 发表于 2012-4-20 13:32
谢谢,我试试

结合6楼的方法更为优化些,
请执行宏1===>选择文件夹路径
注意其中的原则:
1.在代码中我限定了文件名称为 OK 开头的 .mdb 后缀文件名
2.如有提示引用程序错误,请改一下引用
3.注意dir的循环用法

合并的表.rar

269.52 KB, 下载次数: 341

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-4-20 15:55 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Renco 发表于 2012-4-20 13:57
结合6楼的方法更为优化些,
请执行宏1===>选择文件夹路径
注意其中的原则:

多谢大侠~ 试验了下,相当专业,只是有些文件名中有“-”符号,这样的文件会提示错误——“字段太小而不能接受所要添加的数据的数量”,看来文件名字还得规范。

也谢谢六楼了,我还得继续学习,周末愉快!

TA的精华主题

TA的得分主题

发表于 2012-4-20 23:00 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 09:40 , Processed in 0.035658 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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