有多个ACCESS文件分别是1.mdb、2.mdb、3.mdb、5.mdb....,它们里面都有多个相同的表格1、表格2、表格3、...,只是每个表格里的记录不一样,现要把各个*.mdb里的同名表合并生成一个新数据库存,请问有谁知道该如何实现?

解决方案 »

  1.   

    类似这样:
    select * from table1
    union
    SELECT * FROM [database=e:\2.mdb].tb1
    union
    SELECT * FROM [database=e:\3.mdb].tb1
    .
    .
    .
      

  2.   

    1个简单的例子
    Private Sub Command1_Click()
      Dim cn As Connection
      Set cn = New Connection
      cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\db1.mdb;Persist Security Info=False"
      Dim rs As Recordset
      Set rs = New Recordset
      rs.Open "select * from tb1 union all select * from [E:\db2.mdb].tb1", cn
        
      Do While Not rs.EOF
        Debug.Print rs(0), rs(1)
        rs.MoveNext
      Loop
      
      rs.Close
      Set rs = Nothing
      cn.Close
      Set cn = Nothing
    End Sub
      

  3.   

    编一程序,让数据从表中读出,再存在已各新表中不就解决了。比如把表一的所有数据显示在mshflexgrid1中,然后通过一按钮保存在一张新表中,如果id有重复现象可以考虑所有id重新生成,其他表类似操作。
      

  4.   

    试试新建一个空数据库,然后用小刀的代码连接这个数据库,执行以下语句select * into tb
    from (
    select * from [E:\db1.mdb].tb
    union
    select * from [E:\db2.mdb].tb
    union
    select * from [E:\db3.mdb].tb)cn.execute sql
      

  5.   

    '1打开要作为总的数据库all.mdb里的defects表
    DB = App.Path & "\all.mdb"
    pstr = "Provider=Microsoft.Jet.OLEDB.4.0;"
    pstr = pstr & "Data Source=" & DB
    conn.Open pstr
    rs.CursorLocation = adUseClient
    rs.Open "defects", conn, adOpenKeyset, adLockPessimistic'2打开要读出数据来的数据库1.mdb里的defects表
    DB11 = App.Path & "\l.mdb"
    pstr11 = "Provider=Microsoft.Jet.OLEDB.4.0;"
    pstr11 = pstr11 & "Data Source=" & DB11
    conn11.Open pstr11
    rs11.CursorLocation = adUseClient
    rs11.Open "defects", conn11, adOpenKeyset, adLockPessimistic'3将1.mdb里的defects表的所有数据记录追加到all.mdb里的defects表后面.两个数据库里的defects表的结构是相同的.
    '向高手师傅请教这第三步要怎么写'4关闭数据库
    '高手进行批教.
      

  6.   

    DB = App.Path & "\all.mdb" 
    pstr = "Provider=Microsoft.Jet.OLEDB.4.0;" 
    pstr = pstr & "Data Source=" & DB 
    conn.Open pstr dim sql as stringsql="insert into defects select * from ["& DB11 &"].defects"
    conn.execute sql