设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

123下一页
返回列表 发新帖
查看: 6254|回复: 22
打印 上一主题 下一主题

[其它] 求助:access表数据写入另一个access的表

[复制链接]
跳转到指定楼层
1#
发表于 2016-3-4 09:01:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有1、access数据库(数据库名:数据库a ,表名:数据库a表)
有2、access数据库(数据库名:数据库b ,表名:数据库b表)
数据库在同一路径下,数据库字段完全相同(公司名、公司名简称、日期)
请问如何把数据库a中的数据库a表中的数据写入数据库b中的数据库b表中

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2016-3-4 09:10:56 | 只看该作者
1。insert into b (select * from a in c:\a文件路径)
试试这种看看
2。 使用ADO 可连多个数据库,只要指定路径
3#
发表于 2016-3-4 09:25:15 | 只看该作者
insert into [C:\另一个access数据库.mdb].一张表中
select [C:\数据库.mdb].一张表
where ......     大概是这个意思,不妨您试一下好吗!
4#
 楼主| 发表于 2016-3-4 09:33:28 | 只看该作者
tmtony 发表于 2016-3-4 09:10
1。insert into b (select * from a in c:\a文件路径)
试试这种看看
2。 使用ADO 可连多个数据库,只要指 ...

谢谢老大。
5#
 楼主| 发表于 2016-3-4 09:33:50 | 只看该作者
purplerose 发表于 2016-3-4 09:25
insert into [C:\另一个access数据库.mdb].一张表中
select [C:\数据库.mdb].一张表
where ......      ...

谢谢关注。
6#
发表于 2016-3-4 11:47:45 | 只看该作者
本帖最后由 roych 于 2016-3-4 11:50 编辑
  1. Sub test1()
  2.     Dim rst1 As New ADODB.Recordset
  3.     Dim cnn2 As New ADODB.Connection
  4.     Dim rst2 As New ADODB.Recordset
  5.     Dim i As Long
  6.    
  7.     '如果不是在Access里执行,请将CurrentProject.Connection改为正确的连接字符串,具体请参考cnn2的的写法
  8.     rst1.Open "数据库a表", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
  9.     cnn2.Open "provider=Microsoft.jet.OLEDB.4.0;data source=" & CurrentProject.Path & "\数据库b.mdb"
  10.     rst2.Open "数据库b表", cnn2, adOpenKeyset, adLockOptimistic
  11.     Do Until rst1.EOF
  12.         rst2.AddNew
  13.         For i = 0 To rst1.Fields.Count - 1
  14.             rst2(i) = rst1(i)
  15.         Next
  16.         rst2.Update
  17.         rst1.MoveNext
  18.     Loop
  19.     rst2.Close
  20.     rst1.Close
  21. End Sub

  22. Sub test2()
  23. '简单点的写法
  24.     CurrentProject.Connection.Execute "insert INTO [" & CurrentProject.Path & "\数据库b.mdb].[数据库b表] select * FROM 数据库a表"
  25. End Sub
复制代码

关于方法2,从理论上讲,对于数据库a表,是不需要使用绝对路径的。但手头上没有VB,暂时无法调试。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
7#
 楼主| 发表于 2016-3-4 12:01:09 | 只看该作者
roych 发表于 2016-3-4 11:47
关于方法2,从理论上讲,对于数据库a表,是不需要使用绝对路径的。但手头上没有VB,暂时无法调试。

谢谢版主,在access中可以实现。
8#
 楼主| 发表于 2016-3-4 12:41:55 | 只看该作者
roych 发表于 2016-3-4 11:47
关于方法2,从理论上讲,对于数据库a表,是不需要使用绝对路径的。但手头上没有VB,暂时无法调试。

谢谢版主,在vb中可以实现了代码如下
Public cnn As New ADODB.Connection
Public rs As New ADODB.Recordset
Public cnn1 As New ADODB.Connection
Public rs1 As New ADODB.Recordset
Sub OpenCNN()
    Stpath = App.Path & "\数据库a.mdb"       '连接当前路径数据库
    cnn.Open "provider=Microsoft.jet.OLEDB.4.0;data source=" & Stpath & ""
    Stpath1 = App.Path & "\数据库b.mdb"       '连接当前路径数据库
    cnn1.Open "provider=Microsoft.jet.OLEDB.4.0;data source=" & Stpath1 & ""
End Sub
Sub main()
    On Error Resume Next
    Call OpenCNN
    SQL = "select * from 数据库a表"
    rs.Open SQL, cnn, adOpenStatic, adLockOptimistic
    SQL1 = "select * from 数据库b表"
    rs1.Open SQL1, cnn1, adOpenStatic, adLockOptimistic
    Do Until rs.EOF
        rs1.AddNew
        For i = 0 To rs.Fields.Count - 1
            rs1(i) = rs(i)
        Next
        rs1.Update
        rs.MoveNext
    Loop
    rs.Close '关闭记录集
    Set rs = Nothing '销毁数据库连接对象
    rs1.Close '关闭记录集
    Set rs1 = Nothing '销毁数据库连接对象
End Sub

9#
发表于 2016-3-4 13:02:50 | 只看该作者
强悍的VBA运用啊,VBA——我的弱项啊...
10#
 楼主| 发表于 2016-3-4 13:32:38 | 只看该作者
roych 发表于 2016-3-4 11:47
关于方法2,从理论上讲,对于数据库a表,是不需要使用绝对路径的。但手头上没有VB,暂时无法调试。

再请教版主一个问题,您的代码前面的行号是怎么显示出来的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-6-5 02:02 , Processed in 0.091027 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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