ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

求助:如何将多个数据库的中结构相同、表名相同的内容汇总?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2008-3-5 10:53 | 显示全部楼层 |阅读模式

求助:如何将多个ACCESS数据库的结构相同、表名相同的内容汇总到新数据库中?

如:AAAA2008.MDB    BBBB2008.MDB  .....这样的数据库有上百个。

  表名都为: ABCD   结构都一样

 

如何将里面的内容汇总到一起?

先谢各位高手了!

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-3-5 11:07 | 显示全部楼层

如:AAAA2008.MDB    BBBB2008.MDB  CCCC2008.MDB    .....这样的数据库有上百个。

  表名都为: ABCD  

AAAA2008.MDB   数据库   表中内容:  字段名称:  QQQ          WWW               EEE

                                                                内容:     123A             342C                33WS

BBBB2008.MDB   数据库   表中内容:  字段名称:  QQQ          WWW               EEE

                                                                内容:         132V         345C            344WS

CCCC2008.MDB   数据库   表中内容:  字段名称:  QQQ          WWW               EEE

                                                                内容:          223A         652C              ASS

这样的数据库有上百个,将这些数据库中 ABCD  表的内容汇总到另一新数据库  PPPP2008.MDB 中:

 

PPPP2008.MDB   数据库中   表名ABCD:  字段名称:  QQQ          WWW               EEE

                                                                      内容:     123A             342C            33WS   

                                                                                      132V           345C              344WS   

                                                                                       223A           652C              ASS

PPPP2008.MDB   数据库中   表名ABCD:  字段名称:  QQQ          WWW               EEE

                                                                      内容:     123A             342C            33WS   

                                                                                      132V           345C              344WS   

                                                                                       223A           652C              ASS

该如何做呢??请各位帮帮忙!!

TA的精华主题

TA的得分主题

发表于 2008-3-5 14:16 | 显示全部楼层

查询-在设计试图中创建查询,

显示表中添加“BBBB2008.MDB”,然后“关闭”,

“查询-追加查询”,在“追加到”表名称中选“AAAA2008.MDB”。“确定”,最后“运行”即可。

同样的,再把CCCC2008.MDB追加到AAAA2008.MDB中。

[此贴子已经被作者于2008-3-5 14:17:16编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-3-5 17:45 | 显示全部楼层

  谢谢yuxia0528  

但是这样太慢了,有几百个这样的表,要做几百个这样的查询,太浪费时间了;

我想应该这样

(这几百个数据库可先放到一固定文件夹中),因这些数据库的名称长度一样,而且都包含"2008",可以通过编一个语句,先搜索到这些数据库,然后查询里面的表中到另一新表中,再通过一个循环语句运行下一个;

但是我刚学ACCESS没多久,不会编...

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-3-7 19:09 | 显示全部楼层

有没有哪位高手帮想一下......

TA的精华主题

TA的得分主题

发表于 2008-3-8 10:10 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我也想请教这方面的问题

TA的精华主题

TA的得分主题

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

我后来又想:先将表格一个个链接好,然后通过宏把它们一个个运行就可以了,但是有一个问题就是,每次数据库名称都有一些不同,如上面提到的BBBB2008.MDB, 下次又变为  BBBB20018.MDB,表里面的结构不变;

如有没有一种办法能够 实现 批量的更新链接,如果可以的话,这个问题就可以用这种较笨一点的方法解决了....

TA的精华主题

TA的得分主题

发表于 2008-3-8 18:57 | 显示全部楼层
QUOTE:
以下是引用yuxia0528在2008-3-5 14:16:08的发言:

查询-在设计试图中创建查询,

显示表中添加“BBBB2008.MDB”,然后“关闭”,

“查询-追加查询”,在“追加到”表名称中选“AAAA2008.MDB”。“确定”,最后“运行”即可。

同样的,再把CCCC2008.MDB追加到AAAA2008.MDB中。


>> 加入VBA的这个部分

Option Compare Database
'--------Module--Collect--------------
'
'   collect all DATA into ONE
'
'-------------------------------------
Function CollectAll()
Dim CurDB As Database
Dim strCurDBName, strCurPath, strMDBFile As String
Dim strSrcTAB, strDstTAB As String
Dim strSQL, strSQLTMP As String
On Error Resume Next

'-------------------
'----Default Setting
'-------------------
Let strPath = "C:\TEMP\"

Set CurDB = CurrentDb

Let strCurDBName = Trim(Mid(CurDB.Name, InStrRev(CurDB.Name, "\") + 1, 100))

Let strSrcTAB = "OLD_ABCD"

Let strDstTAB = "NEW_ABCD"

Let strSQL = "INSERT INTO [@DSTTAB] SELECT t1.*  FROM [@MDBFILE].[@SRCTAB] AS t1 WHERE 1=1 "


'-------------------
'----Search *.MDB
'-------------------
strMDBFile = Dir(strPath & "*.mdb", vbNormal)
While strMDBFile <> ""
    If (strMDBFile <> strCurDBName) Then
   
        Let strSQLTMP = Replace(strSQL, "@DSTTAB", strDstTAB)
        Let strSQLTMP = Replace(strSQLTMP, "@MDBFILE", strPath & strMDBFile)
        Let strSQLTMP = Replace(strSQLTMP, "@SRCTAB", strSrcTAB)
       
        '-------------------
        '----Import Into
        '-------------------
        Err.Clear
        'CurDB.Execute strSQLTMP
        CurDB.Execute strSQLTMP
        If (Err.Number > 0) Then
            MsgBox strPath & strMDBFile & " : " & Err.Description, vbOKOnly, "<< Import Status >>"
        Else
            MsgBox strPath & strMDBFile & " : " & CurDB.RecordsAffected, vbOKOnly, "<< Import Status >>"
        End If
       
    End If
    strMDBFile = Dir()
Wend

End Function

[em05]

TA的精华主题

TA的得分主题

发表于 2008-3-9 14:45 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-3-12 13:59 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

我还是弄不了,可能是我没有描述清楚吧,我再描述一次:

1、AAAA2008.MDB   数据库  表名ABCD    表中内容:  字段名称:  QQQ          WWW               EEE

                                                                            内容:     123A             342C                33WS

2、BBBB2008.MDB   数据库    表名ABCD  表中内容:  字段名称:  QQQ          WWW               EEE

                                                                            内容:         132V         345C            344WS

3、CCCC2008.MDB   数据库    表名ABCD  表中内容:  字段名称:  QQQ          WWW               EEE

                                                                            内容:          223A         652C              ASS

这样的数据库有几百个,  表名都一样,都是ABCD  要把ABCD表的内容全部汇总到一起,

再次麻烦楼上“DVDLIAO”及“yuxia0528”能否写得再详细一些,非常感谢!

我还是弄不了,可能是我没有描述清楚吧,我再描述一次:

1、AAAA2008.MDB   数据库  表名ABCD    表中内容:  字段名称:  QQQ          WWW               EEE

                                                                            内容:     123A             342C                33WS

2、BBBB2008.MDB   数据库    表名ABCD  表中内容:  字段名称:  QQQ          WWW               EEE

                                                                            内容:         132V         345C            344WS

3、CCCC2008.MDB   数据库    表名ABCD  表中内容:  字段名称:  QQQ          WWW               EEE

                                                                            内容:          223A         652C              ASS

这样的数据库有几百个,  表名都一样,都是ABCD  要把ABCD表的内容全部汇总到一起,

再次麻烦楼上“DVDLIAO”及“yuxia0528”能否写得再详细一些,非常感谢!

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

本版积分规则

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

GMT+8, 2024-11-16 13:35 , Processed in 0.045545 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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