有两个数据库文件1.mdb,2.mdb(结构一样,有密码).我想把2.mdb中表1的数据追加到1。mdb的表1中,用SQL语句实现: 
   insert into 表1 in "2.mdb的路径" select * from 表1
提示密码无效。
    请问应该在那里写密码?

解决方案 »

  1.   

    这实际上是一个跨数据库操作的问题。实现方法有很多种。
    既然这是在两个ACCESS库之间,那么介绍一种简单的方法。
    1、如果两个表结构一样。
    两个mdb: db1,db2。假设有结构相同的表1(在db1里),表2(db2里)用一个adoconnection连db2.mdb。一个AdoQuery1连这个Adoconnection。
    执行
     adocommand1.commandtext := 'insert into 表1 in "c:\test\db1.mdb" select * from 表2';
     adocommand1.execute;
    这样就行了。Adoconnection连接了db2,所以能够识别表2。
    db1中的表就使用路径来识别。假设路径为"c:\test\db1.mdb"。
    2、表结构不一样。那么方法一样。只是insert语句具体到字段.
    insert into 表1(a,b) in "c:\test\db1.mdb" select a,b from 表2
      

  2.   

    不好意思,刚刚看错了。
    既然这样。
    你可以先用access建立两个连接分别连接db1.mdb,db2.mdb
    连接名(即表名)分别为:tablea,tableb,然后可以用
    select a.* into b.*  from tablea  a, tableb b至于想在SQL语句里写密码,好想不行。因为只建立了一个数据库连接。
    除非你建立两个连接,但没办法用SQL语句直接实现了。
      

  3.   

    ADOCommand1.CommandText:='select a.* into b.* from tablea  a, tableb b';
      ADOCommand1.Execute;
    执行出错:查询语法错误,查询子句不完整。你可以先用access建立两个连接分别连接db1.mdb,db2.mdb
    连接名(即表名)分别为:tablea,tableb,
    (能说详细一点吗?怎么通过编程实现.)
      

  4.   


    你可以先用access建立两个连接分别连接db1.mdb,db2.mdb
    连接名(即表名)分别为:tablea,tableb,然后可以用
    select a.* into b.*  from tablea  a, tableb b
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               查询语法错误。查询不完整。
      

  5.   

    你可以先用access建立两个连接分别连接db1.mdb,db2.mdb
    连接名(即表名)分别为:tablea,tableb,然后可以用
    insert into a  select * from b
      

  6.   

    用两个AdoCOnnection联接
    连接待密码的Access数据库:
    ADO连接加密数据库
    connectionstring :='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+target_filename+'; Persist Security  Info=False;Jet OLEDB:Database Password=1234';
      

  7.   

    to :galaxyahn
    不好意思,打错了ADOCommand1.CommandText:='select a.* into b.* from tablea  a, tableb b';中的adocommand1改成adoquery1,呵呵,一看就知道错的。
    用access建立两个连接分别连接db1.mdb,db2.mdb
    不用编程啊,你可以新建一个库db3.mdb,文件-获取外部数据-链接表,不就可以吗?过程中输入密码。这样把两个表链到一个库里,没办法,access就是这么傻。
    然后你可以插入了。
    select a.* into b.*  from tablea  a, tableb b 不行吗?
    那你换个写法。insert into tablea select * from tableb
      

  8.   

    执行SQL语句,比用两个ADOCONNECTION快
      

  9.   

    to:phyyun(phyyun)
        用access建立两个连接分别连接db1.mdb,db2.mdb  
    不用编程啊,你可以新建一个库db3.mdb,文件-获取外部数据-链接表,不就可以吗?过程中输入密码.
        能用编程方式实现吗?我就是想用编程的方法.
    to:newsofter(横空出世小霸王)
        用两个AdoCOnnection联接后,又应该怎么追加数据?我不想一条一条记录追加.
      

  10.   


    用ADO连接时,在配置ConectString属性时有一个PassWord选项。
      

  11.   

    编程的方法用这个。
    ADOCONNECTION1连db2.mdb,把t2插入db1.mdb的t1中
    ADOConnection1.Connected := True;
    ADOConnection1.Execute('select * into t1 in ''''[MS Access; PWD=1234; DATABASE=c:\db1.mdb;]  from t2 ');