现有两个access数据库:A1.MDB     A2.MDB
                    表B1         表B2
我现在想把A1中的表B1中若干条符合条件的记录复制到数据库A2中的表B2中,数据集用的是ADODATASET.
请问用什么方法实现速度比较快。

解决方案 »

  1.   

    一条语句就可以搞定了:
    insert into tmp_tbl select * from table
    选择table表中的所有记录插入到表tmp_tbl中。
      

  2.   

    我用的是adodataset,数据集,用adoquery写sql语句,两个表table、tmp_tbl在两个数据库中,不知道怎么建立连接。
      

  3.   

    adoquery 连接 A2
    adoquery的sql里写
    insert into B2 select * FROM B1 in "D:\A1.mdb";ok了
      

  4.   

    其实qizhanfeng(glacier) 得办法是最好的。用ACCESS的话就不要太挑剔了。
      

  5.   

    adocommand.text:=   //Tadocommand;
      'insert into a1(a1zd1,a1zd2....) (select b1zd1,b2zd2 from b2 where 条件)';
    adocommand.execute;没必要用adodatase了
    adodataset1.close;
    adodataset1.commandtext:='select * from b2';
    adodataset1.open;a1zd1 对应 b2zd1
    a1zd2 对应 b2zd2 ....
      

  6.   

    其实qizhanfeng(glacier) 得办法是最好的。用ACCESS的话就不要太挑剔了。同意,把"D:\A1.mdb"改为你自己的数据库就呵呵
      

  7.   

    直接在sqlserver的sqlquery analyzer寫
    insert into table1 (字段1,字段2...) from 字段1,字段2... from table2
      

  8.   

    http://tlsoft.go.nease.net/ytl.htm为什么会出现上图的错误提示框??我的查询语句如下:
    dataM_ysb.ADOQuery1.SQL.Clear;str:='insert into rcjhzb(clbm,clmc,dw,desl,cllb,dj,scj,deid) select azdexhlk.clbh,azrcjdjk.mc,azrcjdjk.dw,azdexhlk.xhl,azrcjdjk.lb,azrcjdjk.ysj,azrcjdjk.scj,' + inttostr(id_max) + ' from azdexhlk inner join azrcjdjk on azdexhlk.clbh=azrcjdjk.rcjbh where azdexhlk.zmid='+arry_dezm[8]+' in'+'(''C:\TLQDYS2004\SJDATA\qdsj.mdb'')';dataM_ysb.ADOQuery1.SQL.Add(str);dataM_ysb.ADOQuery1.Open;
      

  9.   

    最后一句改成:
    dataM_ysb.ADOQuery1.execsql;
    试试
      

  10.   

    最后一句改成:
    dataM_ysb.ADOQuery1.execsql;然后showmessage(dataM_ysb.ADOQuery1.SQL.text)
    看看有没有语法上的问题。