ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 同结构的ACCESS数据库如何实现合并

[复制链接]

TA的精华主题

TA的得分主题

发表于 2010-1-29 19:53 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
如题,手头含有70个子公司的ACCESS数据库,每个数据库数据库数量一样,结构一样,该如何实现合并到一个合并数据库中,以下语句可以实现两个同结构数据库的合并,但我要求实现的是70的数据库合并:是否连续执行69次宏即可,如果可以,能否用循环语句实现,谢谢!(我的思路法是;用VBA新建一地址表获取各数据库所在路径及文件名(假设都在同一文件夹内:D盘),然后执行地址指针循环运行代码
Public Sub ImportData()
   
          Dim strPath     As String
          strPath = "D:\db2.MDB"
          Dim strSQL     As String
          Dim Cnn     As New ADODB.Connection
          Dim Rst     As New ADODB.Recordset
          Set Cnn = CurrentProject.Connection
            
          strSQL = "SELECT   *   FROM   MSysObjects   WHERE   Flags=0   AND   Type=1"
          Rst.Open strSQL, Cnn, adOpenKeyset, adLockReadOnly
          If Not Rst.EOF Then
                  Rst.MoveFirst
                    
                  Do While Not Rst.EOF
                          strSQL = "insert   into   " & Rst!Name & "   select   *   from   " & Rst!Name & "   in   '" & strPath & "'"
                          Cnn.Execute strSQL
                          Debug.Print strSQL
                          Debug.Print Rst!Name
                          Rst.MoveNext
                  Loop
          End If
            
          MsgBox "OK
  End Sub

[ 本帖最后由 wwwbjwww 于 2010-1-30 10:12 编辑 ]

TA的精华主题

TA的得分主题

发表于 2010-1-29 20:18 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-1-29 20:19 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
select * from T1
union all
select * from T2
union all
select * from T3
union all
select * from T4
union all
select * from T5
..................
select * from T70

TA的精华主题

TA的得分主题

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

数据库合并

请问大侠,该代码写在何处,好象没看到70个库合并到哪个数据库,是新建一个数据库然后引用代码合并吗

TA的精华主题

TA的得分主题

发表于 2010-1-29 20:43 | 显示全部楼层
新建一个查询,改成sql模式,就可以输入了

TA的精华主题

TA的得分主题

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

回复 5楼 leecg 的帖子

谢谢leecg大侠,以上语句是否可以用变量表示数据表,因为表实在太多了,比如用
for i=1 to 70
form&i&的形式表示1到70的数据表

[ 本帖最后由 wwwbjwww 于 2010-1-29 20:57 编辑 ]

TA的精华主题

TA的得分主题

发表于 2010-1-29 21:51 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-1-29 22:13 | 显示全部楼层
原帖由 wwwbjwww 于 2010-1-29 20:55 发表
谢谢leecg大侠,以上语句是否可以用变量表示数据表,因为表实在太多了,比如用
for i=1 to 70
form&i&的形式表示1到70的数据表

access中 的vba试试

但是应该也是相当于
for i=1 to 70
循环先合并生成sql语句,然后再执行

或者你先用循环赋值

之后把这个值手工贴到查询里面

TA的精华主题

TA的得分主题

发表于 2010-1-29 22:15 | 显示全部楼层
当然也可以用excel下拉形成所需要的
查询语句,然后组合
再贴入


至于在sql中直接用循环查询,可能可以,
因为在查询语句中甚至可以使用变量等。。。。。。

现在水平没有到,还不会
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

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

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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