Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

如何导入另一ACCESS中的表?急!!

cwzj3807  发表于:2019-12-13 10:22:38  
复制

求助各位老师:

我有两个ACCESS文件(文件1.mdb,文件2.mdb),我需要在 文件1.mdb 中用代码将 文件2.mdb 的所有表导入到 文件1.mdb 中,代码该怎样写?谢谢!

 

Top
麥田 发表于:2019-12-13 10:26:06

手动导入 不好了

获取外部数据选择需要的数据库



cwzj3807 发表于:2019-12-13 10:29:23

求助各位老师:

我有两个ACCESS文件(文件1.mdb,文件2.mdb),我需要在 文件1.mdb 中用代码将 文件2.mdb 的所有表导入到 文件1.mdb 中,代码该怎样写?谢谢!



西出阳关无故人 发表于:2019-12-13 17:49:17

在本库操作:

select 字段名... into 本数据库表名 from [;database=另一个mdb的完整路径文件名].表名   ---新建表并追加数据

insert into  本数据库表名(字段名...) select 字段名... from [;database=另一个mdb的完整路径文件名].表名   ---仅数据追加到已有的表

以上为另一个数据库没有密码的情况,均为 mdb 文件

其他情况可以搜索"access 跨库查询"进行参考.



cwzj3807 发表于:2019-12-13 20:42:22

西出阳关无故人 老师:

您好,我还是看不懂您的回复,让您见笑了。恳请老师给个完整的代码,谢谢!!!








西出阳关无故人 发表于:2019-12-14 22:03:43

select 字段1,字段2,字段3 into 本地表的表名称 from [;database=D:\\MYDOC\B.mdb].表名

D:\\MYDOC\的目录下有一个叫做B.mdb的数据库,里面有个叫做表名的表,表里有字段1,字段2,字段3等字段,

这个SQL语句的意思:D:\\MYDOC\B.mdb这个数据库中叫做表名的表的字段1,字段2,字段3字段的内容复制到本数据库中(新建的并命名为本地表的表名称)的表中,本数据库的这个表,不需要你创建,他会自己创建.

insert into  本数据库表名(字段A,字段B,字段C) select 字段1,字段2,字段3 from [;database=D:\\MYDOC\B.mdb].表名 

本数据库已经存在名为本数据库表名的表,他有很多字段,字段A,字段B,字段C可能只是其中部分字段.

第二个sql语法的意思是,把D:\\MYDOC\B.mdb数据库中叫做表名 的表的字段1,字段2,字段3三个字段的记录值,插入到本数据库中已经存在的叫做本数据库表名表的字段A,字段B,字段C中.



cwzj3807 发表于:2019-12-15 11:01:59

谢谢 西出阳关无故人 老师的指点,学习中。

另外,下面是我在网上找到的链接另一个 AAAAAA.mde 数据库表的代码,经运行没问题。那么如果我是要导入 AAAAAA.mde 数据库中的表,其代码又该怎样修改呢?谢谢!!!

Private Sub Ljsjk_Table()
    Dim rs, conn
    Set rs = CreateObject("ADODB.Recordset")
    Set conn = CreateObject("ADODB.Connection")
    conn.Open "provider=microsoft.jet.oledb.4.0;Jet OLEDB:Database Password=111111;data source=" & CurrentProject.Path & "\AAAAAA.mde"
    Set rs = conn.OpenSchema(adSchemaTables)
    Do While Not rs.EOF
       Call Link2MDB(CurrentProject.Path & "\AAAAAA.mde", 111111, rs!TABLE_NAME, rs!TABLE_NAME)
       rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing
    conn.Close
    Set conn = Nothing
End Sub
Sub Link2MDB(sDBPath$, pwd$, sTable$, dTable$)
    On Error Resume Next
    Dim tbldef As TableDef
    Set tbldef = CurrentDb.CreateTableDef(dTable)
    tbldef.Connect = "MS Access;PWD=" & pwd & ";Database=" & sDBPath
    tbldef.SourceTableName = sTable
    CurrentDb.TableDefs.Append tbldef
End Sub



西出阳关无故人 发表于:2019-12-17 20:15:20

试一下(对比一下你的原码,有色部分是变更了的):

Private Sub Ljsjk_Table()
    Dim rs, conn
    Set rs = CreateObject("ADODB.Recordset")
    Set conn = CreateObject("ADODB.Connection")
    conn.Open "provider=microsoft.jet.oledb.4.0;Jet OLEDB:Database Password=111111;data source=" & CurrentProject.Path & "\AAAAAA.mde"
    Set rs = conn.OpenSchema(adSchemaTables)
    Do While Not rs.EOF
        If rs!TABLE_NAME Like "Msys*" Then
            '你没有必要导入系统表
        Else
            CurrentDb.Execute "select * into " & rs!TABLE_NAME & " from [;database=" & CurrentProject.Path & "\AAAAAA.mde" & ";PWD=111111]." & rs!TABLE_NAME
        End If
        rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing
    conn.Close
    Set conn = Nothing
End Sub



cwzj3807 发表于:2019-12-17 21:30:39

谢谢 西出阳关无故人 老师,学习中。






总记录:8篇  页次:1/1 9 1 :