我有两个Access库1.mdb,2.mdb 
我想读2.mdb中某个表然后再处理1.mdb中的表
比如:
   Insert into (1.mdb 下的 table1) select * from (2.mdb 下的 table1),请问括号中要怎么样写。谢谢!

解决方案 »

  1.   

    你要一条SQL语句操作两个库!这样很繁琐的。不如先读到一个数据集里再往另一个库里Insert。
      

  2.   

    试一下用两个query(连接不同数据库),互相赋值
      

  3.   

    To xyz800316(其实我是一个Programmer!) 
    具体怎么做啊,怎么往另一个库里Insert?
      

  4.   

    1。ADOConnection1指向目标数据库  1.mdb
    2。
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      ADOConnection1.Connected := True;
      ADOConnection1.Execute('insert into table1 select * from table1 in ''d:\2.mdb''');
    end;
      

  5.   

    谢谢啊,不过我找到一种方法:
    就是两个数据集分别对应两个连接相应的表,源数据集读数据,目标数据集.clone(源数据集),好像可以的
      

  6.   

    还是 meiqingsong(阿飛) 英明
    我的clone不行了,他只是把目标数据集指向源数据集而己
      

  7.   

    一个笨方法,但容易懂,就是用两个ADOConnection连接两个Acess,再用两个ADOQuery,目地的DataSource设为源ADOQuery,然后再Append。
      

  8.   

    自己创建一个类就非常清晰了?创建什么类啊,不要光说不练啊,
    用Append可是太笨了,速度要死人的我根据meiqingsong(阿飛)的方法,写了一个函数,与大家共享:    Function BatchMove(ToDs, FromDs: TCustomAdoDataSet; ToTbName, FromTbName:
          String): Boolean; Overload;
        Function BatchMove(ToConn: TAdoConnection; FromMDB: String; ToTbName,
          FromTbName: String): Boolean; Overload;
    {-------------------------------------------------------------------------------
      @过程名:    TdmPrj.BatchMove
      @作者:      Gavin
      @日期:      2004.10.15
      @功能描述:把一个MDB中的数据复制到另一个mdb的表tbName中
      @参数:      SrcDs, DesDs: TCustomAdoDataSet; tbName1, tbName2: String
      @返回值:    无
    -------------------------------------------------------------------------------}Function TdmPrj.BatchMove(ToDs, FromDs: TCustomAdoDataSet; ToTbName, FromTbName:
      String): Boolean;
    Var
      str1, str2: String;
      i, j: integer;
    Begin
      // TODO -cMM: TdmPrj.BatchMove default body inserted
      Try
        str1 := FromDs.Connection.ConnectionString;
        i := Pos('Data Source=', str1);
        str2 := Copy(str1, i, Length(str1));
        str1 := Copy(str2, 13, Pos(';', str2) - 13);
        ToDs.Connection.Execute('insert into ' + ToTbName + ' select * from ' +
          FromTbName + ' in ' + QuotedStr(str1));
        Result := true;
      Except
        Result := false;
        //showmessage('复制数据失败!');
      End;
    End;{-------------------------------------------------------------------------------
      @过程名:    TdmPrj.BatchMove
      @作者:      Gavin
      @日期:      2004.10.15
      @功能描述:把一个MDB中的数据复制到另一个mdb的表tbName中
      @参数:      SrcDs, DesDs: TCustomAdoDataSet; tbName1, tbName2: String
      @返回值:    无
    -------------------------------------------------------------------------------}Function TdmPrj.BatchMove(ToConn: TAdoConnection; FromMDB: String; ToTbName,
      FromTbName:
      String): Boolean;
    Var
      str1, str2: String;
      i, j: integer;
    Begin
      // TODO -cMM: TdmPrj.BatchMove default body inserted
      Try
        ToConn.Execute('insert into ' + ToTbName + ' select * from ' +
          FromTbName + ' in ' + QuotedStr(FromMDB));
        Result := true;
      Except
        Result := false;
        //showmessage('复制数据失败!');
      End;
    End;