数据库:a.mdb,b.mdb
表:table1,table2
字段:A,B,C,D,e,f,g,j
现把a.mdb中table1表中A,B,C,D 插入到b.mdb table2的 e,f,g,h
不知道sql语句应该怎么写?谢谢

解决方案 »

  1.   


    insert [;database=C:\b.mdb;pwd=abc].table2 (e,f,g,h)
    select a,b,c,d
    from table1
      

  2.   

    谢谢,有点不太明白,
    如果没有密码就是
    insert [;database=c:\b.mdb].table2(e,f,g,h,i,j) (select a,b,c,d from table1 in a.mdb) values(1,'j')
    请帮我看一下这句语法有问题吗?
    因为table2中还有两个字段是自己添加的,不是从a.mdb的table1中读出来的,
    还有a.mdb数据库不知道应放在哪里?
    a,b数据库的关系其实是b>a (就是b中包含了a),两个数据库中都有table1,所以应该写明是a数据库吧
      

  3.   

    按楼主的意思, 这样才行
    insert [;database=c:\b.mdb].table2(e,f,g,h,i,j) select a,b,c,d , 1 as i , 'j' as j from table1 
      

  4.   


    中海 说的是用DAO的方法,
      

  5.   

    那如果是ado还可以用吗?谢谢回复
    还有a.mdb 的所放位置还是不清楚,用in可以吗?from table1 in a.mdb???
      

  6.   

    ADO我就不知道如何做了, 
    DAO的方法
    没有 from table1 in a.mdb???的用法Dim db As Database         '数据库
    Dim Sr_Mdb As String       '源MDB文件
    Set db = Workspaces(0).OpenDatabase(Sr_Mdb)
    Sr_Mdb = "a.mdb" ' 这里可以包含路径 , 比如 :c:\db\a.mdb  或者 d:\mydev\db\db2\a.mdb , 可以在这里做个打开文件的对话框db.Execute "insert [;database=c:\b.mdb].table2(e,f,g,h,i,j) select a,b,c,d , 1 as i , 'j' as j from table1" '上面的database=c:\b.mdb 也是可以定成任意的的路径 , 前提是有该文件而且表也存在, 
      

  7.   

    谢谢
    可结果:出现实时错误3134
    说insert into语句出错?
      

  8.   

    sorry , 弄错了db.Execute "insert into [;database=c:\b.mdb].table2(e,f,g,h,i,j) select a,b,c,d , 1 as i , 'j' as j from table1" 
      

  9.   

    谢谢,:)
    但现在说参数不足,期待是1
    原句是这样的:
        db.Execute "insert into [;database=C:\Documents and Settings\zyh\桌面\节点转换\sysdb.mdb].tab_module(ticAddress,ticplusID,chlsystype,chlplusid,chltype,chlName,deviceID,deviceName) select ticAddress,ticplusID,channellsystype,channelplusid,channeltype,channelName , 3 as deviceID , '电源' as deviceName from tab_channel where stationid=1 and ticid=1"