这实际上是一个跨数据库操作的问题。实现方法有很多种。 既然这是在两个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
不好意思,刚刚看错了。 既然这样。 你可以先用access建立两个连接分别连接db1.mdb,db2.mdb 连接名(即表名)分别为:tablea,tableb,然后可以用 select a.* into b.* from tablea a, tableb b至于想在SQL语句里写密码,好想不行。因为只建立了一个数据库连接。 除非你建立两个连接,但没办法用SQL语句直接实现了。
ADOCommand1.CommandText:='select a.* into b.* from tablea a, tableb b'; ADOCommand1.Execute; 执行出错:查询语法错误,查询子句不完整。你可以先用access建立两个连接分别连接db1.mdb,db2.mdb 连接名(即表名)分别为:tablea,tableb, (能说详细一点吗?怎么通过编程实现.)
你可以先用access建立两个连接分别连接db1.mdb,db2.mdb 连接名(即表名)分别为:tablea,tableb,然后可以用 select a.* into b.* from tablea a, tableb b ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 查询语法错误。查询不完整。
你可以先用access建立两个连接分别连接db1.mdb,db2.mdb 连接名(即表名)分别为:tablea,tableb,然后可以用 insert into a select * from b
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
既然这是在两个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
既然这样。
你可以先用access建立两个连接分别连接db1.mdb,db2.mdb
连接名(即表名)分别为:tablea,tableb,然后可以用
select a.* into b.* from tablea a, tableb b至于想在SQL语句里写密码,好想不行。因为只建立了一个数据库连接。
除非你建立两个连接,但没办法用SQL语句直接实现了。
ADOCommand1.Execute;
执行出错:查询语法错误,查询子句不完整。你可以先用access建立两个连接分别连接db1.mdb,db2.mdb
连接名(即表名)分别为:tablea,tableb,
(能说详细一点吗?怎么通过编程实现.)
你可以先用access建立两个连接分别连接db1.mdb,db2.mdb
连接名(即表名)分别为:tablea,tableb,然后可以用
select a.* into b.* from tablea a, tableb b
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
查询语法错误。查询不完整。
连接名(即表名)分别为:tablea,tableb,然后可以用
insert into a select * from b
连接待密码的Access数据库:
ADO连接加密数据库
connectionstring :='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+target_filename+'; Persist Security Info=False;Jet OLEDB:Database Password=1234';
不好意思,打错了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
用access建立两个连接分别连接db1.mdb,db2.mdb
不用编程啊,你可以新建一个库db3.mdb,文件-获取外部数据-链接表,不就可以吗?过程中输入密码.
能用编程方式实现吗?我就是想用编程的方法.
to:newsofter(横空出世小霸王)
用两个AdoCOnnection联接后,又应该怎么追加数据?我不想一条一条记录追加.
用ADO连接时,在配置ConectString属性时有一个PassWord选项。
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 ');