会员登录 - 用户注册 - 网站地图 Office中国(office-cn.net),专业Office论坛
当前位置:主页 > 技巧 > Access技巧 > 数据表 > 正文

如何合并多个表结构相同的MDB

时间:2009-04-30 08:52 来源:access911.net 作者:cg1 阅读:

问题:

如何合并多个表结构相同的MDB《表》
在同一目录下,有很多相同结构相同的MDB,是从各个分支单位上报的数据,现要合并统计,如何做?

 

回答:


示例数据库下载:
http://access911.net/down/eg/eg_JoinMDBTable.rar

解压缩后有2个MDB,你也可以再多复制几分,随意打开哪个MDB都可以运行测试代码,测试代码将搜索MDB所在的目录导入目录中所有 MDB 的 表1 到当前数据库中,所以请确定目录及子目录中不要有太多的文件否则可能导致运行时间过长。

方法一:动态搜索整个目录,找到MDB后搜索数据库内是否存在同样的表,如果同样,就组织 JET SQL 语句的 IN 子句合并

方法二:动态搜索整个目录,找到MDB后搜索数据库内是否存在同样的表,如果同样,就将所有的 MDB 数据导入到一个新的 MDB 中,每个表名重新命名一下,然后用 SELECT ... UNION ALL 语句重新组织一下。

技术要点:
1,如何取目录下的所有mdb的文件名?将文件名放入变量
2,如何构成动态的SQl语句,将上述变量插入到语句中并形成一个可用的查询
3,如何循环,如何将所有的 MDB 中的表的名称全部包含进去?


要点解决:
1,
    如何得到某个目录下所有的文件名?《函数》
    http://access911.net/index.asp?u1=a&u2=78FAB01E17DC

2,你要做的只是将刚才得到的变量用一下形式组织一下

dim strMdb as string
dim strSQL as string
strMdb = .....  '要点解决1
strSQL = strSQL & "select .... from .... " & strMdb & " ...."

    用VBA灵活生成查询,动态生成查询《VBA》
    http://access911.net/index.asp?u1=a&u2=73FAB41E17DC

3,如何循环,如何将所有的 MDB 中的表的名称全部包含进去?------要点解决1本身就是一个循环,你只要得到一个 MDB 名称就组织 SQL 的一部分即可,记得 SQL 字符串要保存在公共变量中。

上述是方案的完整思路以及需要参考的全部代码

(责任编辑:admin)

顶一下
(2)
100%
踩一下
(0)
0%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价: