ACCESS两个数据库db1.mdb和db2.mdb,这两个数据库中都有一个A表,结构字段完全一样,现在我想实现把db2.mdb中的表A所有记录复制到db1.mdb中的表A中,但表A中的记录也有跟db2.mdb表A中不一样的记录,如果不一样记录则db1.mdb中的表A要保留,一样的就不复制了,没有的记录则追加在db1.mdb中的表A后面,从而实现db1.mdb中的表A数据更新,表A的结构前面三个字段名称(1+2+3)一起来判断记录是不是相同,另外两个数据库都有密码,假设密码都为1,
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ExtractFilePath(ParamStr(0))+'db1.mdb;User ID=admin;Password=;Jet OLEDB:Database Password=1',这是程序在显示时连接数据库,现在想在这个程序中单击button1实现db1.mdb中的表A数据更新,db2.mdb在C:\temp\db2.mdb,请高手指教,谢谢!

解决方案 »

  1.   

    adoquery1.Close;
    adoquery1.SQL.Clear;
    adoquery1.SQL.Add( 'delete * from A');
    adoquery1.ExecSQL;
    t:=' insert into A select * from A in '+QuotedStr('C:\db2.mdb');
    ADOConnection1.Execute(t,cmdText,[eoExecuteNoRecords]);
    这样可以实现复制没有加密码的数据表,但是数据库加了密码后,就报错“密码无效”,且表A中的记录也有跟db2.mdb表A中不一样的记录,如果不一样记录则db1.mdb中的表A要保留,一样的就不复制了,没有的记录则追加在db1.mdb中的表A后面,如何实现,请高手详细指点,非常感谢!
      

  2.   

    在DELPHI里面判断比较麻烦。如果可以的话,直接用SQL SERVER连接这两个ACCESS数据库的表用INNER JOIN进行判断。
    这样做最简单了。
      

  3.   

    但是我需要在DELPHI开发的程序界面里单击按钮后实现
      

  4.   

    我需要在DELPHI开发的程序里面单击按钮实现
      

  5.   

    数据库db1.mdb
    "A" 表:
    LastName FirstName Address City
    Carter Thomas Changan Street Beijing
    Gates Bill Xuanwumen 10 Beijing
    数据库db2.mdb
    "A" 表:
    LastName FirstName Address City
    Carter Thomas Changan Street Beijing
    Wilson   Champs-Elysees
    如何在delphi设计的程序里面单击按钮实现,得到以下结果??????????????????
    数据库db1.mdb
    "A" 表:
    LastName FirstName Address City
    Carter Thomas Changan Street Beijing
    Gates Bill Xuanwumen 10 Beijing
    Wilson   Champs-Elysees
      

  6.   

    在ACCESS数据库中在一个数据库中,复制记录到另一个数据库中(表结构相同),如何复制?
    比如,ACCESS数据库中,有二个数据库,db1.mdb,db2.mdb 
    里面都有相同的表A,而且表结构都相同。 现在要把db2数据库中的A的记录,复制到db1数据库中的A表。 而且只复制db1数据库中所没有的记录就行,db2.mdb表A中有的记录,如果db1.mdb中没有,则db2.mdb中的表A要保留记录
      

  7.   

    insert into 目标表 select * from 源表 in "C:\目标数据库.mdb" 
    这样的方法是可以实现在两个数据库中进行复制, 
    可是如果这个数据库有密码就不行了,那怎么办? Select * into table1 from table1 in "e:\temp\db2.mdb" 
    或 
    Select * into table1 in "E:\temp\db1.mdb" From table1 
    可是这样的方法,是把原来的表删除掉,增加数据的,我现在要的是能在表后面增加记录。 
      

  8.   

    biao2加个标示字段,插入表一成功的就标个状态,然后循环插入。
      

  9.   

    能实现两个表数据复制到一个表了,可是怎么删除db1.mdb表A中重复的记录?有什么好方法?
    比如
    有一个ACCESS数据表A如下 
    ID     Name       Score 
    1       老张       80 
    2       王二小     70 
    3       老张       80 
    4       李小黑     90 
    ==================== 
    现在我想删除   字段   Name   重复的纪录,达如下效果: 
    ID     Name       Score 
    1       老张       80 
    2       王二小     70 
    4       李小黑     90 
      

  10.   

    保留ID最大的一笔数据delete from 表A where id not in (select min(id) from 表A group by [name])
      

  11.   

    说反了,是保存ID最小的一笔
    要最大可以用max(id),区别分数是group by [name],Score
      

  12.   

    能实现两个表数据复制到一个表了,可是怎么删除db1.mdb表A中重复的记录?有什么好方法?
    比如
    有一个ACCESS数据表A如下  
    ID Name Score  
    1 老张 80  
    2 王二小 70  
    1 老张 80  
    4 李小黑 90  
    ====================  
    现在我想删除 字段 Name 重复的纪录,达如下效果:  
    ID Name Score  
    1 老张 80  
    2 王二小 70  
    4 李小黑 90 
    如果ID号也是一样的呢?