两个数据库文件A.MDB和B.MDB,A中有表和数据,B为一个空数据库。
现欲将A中所有的有和数据复制到B中,但不能用FileCopy。请给出详细代码,因为对SQL与VB的复合不是太在行,谢谢!

解决方案 »

  1.   


    Dim Conn As ADODB.Connection
    Set Conn = New ADODB.Connection
    Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\A.mdb;Persist Security Info=False;Jet OLEDB:Database Password=abcd"
    Dim Sql1 As String
    Dim Sql2 As String
    Sql1 = "select * into [C:\B.mdb].[table1] from [table1]"
    Sql2 = "select * into [C:\B.mdb].[table2] from [table2]"
    ......
    conn.Execute Sql1
    conn.Execute Sql2
    ......
      

  2.   

    private sub CopyAlltable()
        Dim cn As ADODB.Connection
        Dim rs As New ADODB.Recordset
        Set cn = New ADODB.Connection
        
        cn.CursorLocation = adUseClient           
        cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\A.mdb;"
        Set rs = cnDatabase.OpenSchema(adSchemaTables)
        Do While Not rs.EOF
                '将旧数据库中的各个表复制到新数据库中
            If rs.Fields("TABLE_TYPE") = "TABLE" Then 
                cn.Execute "select * into [C:\newdb.mdb;].[" & rs.Fields("TABLE_NAME") & "] from [" & rs.Fields("TABLE_NAME") & "]"
    '或者:Cn.Execute "select * into openrowset('Microsoft.Jet.OLEDB.4.0','c:\B.mdb';'admin';'',"& rs.Fields("TABLE_NAME") &") from [" & rs.Fields("TABLE_NAME") & "]"
            end if        
            rs.MoveNext
        Loop
        rs.Close
        set rs=nothing
        cn.close
        set cn=nothing
    end sub