日期:2014-05-16  浏览次数:20859 次

VB操纵三个独立的Access数据库问题
如题,有三个独立的Access数据库,数据结构相同,内容不同,如字段均为:
A.mdb   ,结构:ID,Name,sex
B.mdb   ,结构:ID,Name,sex
C.mdb   ,结构:ID,Name,sex
问题如下:
1.====
A、B、C的内容不同,现要从B中找出A中已有的重复数据,并将找出的相同数据保存至C.mdb,用VB如何实现;
2、====
将1步骤找出的重复数据从B中删除;
3、====
将删除重复数据后的B.mdb追加至A.MDB
以上如何实现,VB6.0,谢谢!
      急!
                                                         
请Email至:(因上网不便)
  fycsave@163.com


------解决方案--------------------
创建Connection,连接到一个数据库,比如说:A.mdb

使用SQL语句可以实现多个mdb:


可以使用如下两种方式访问另一个MDB:

1、
SELECT * from 表名 in 'C:\db2.mdb '

--其中表名是在db2中的表名

2、
select * from [;database=C:\db2.mdb].表名


------解决方案--------------------
--如果创建的Connection连接的是A.mdb,则第一个问题用如下SQL实现:

假设你说的相同,指的是三个字段都相同:

insert into [;database=D:\C.mdb].表名 (id,name,sex)
select a.ID,a.name,a.sex
from 表名 as a
inner join [;database=D:\B.mdb].表名 as b on a.id=b.id and a.name=b.name and a.sex=b.sex
------解决方案--------------------
--如果创建的Connection连接的是A.mdb,则用如下SQL实现:

假设你说的数据相同,指的是三个字段都相同:


--1、第一个问题

insert into [;database=D:\C.mdb].表名 (id,name,sex)
select a.ID,a.name,a.sex
from 表名 as a
inner join [;database=D:\B.mdb].表名 as b on a.id=b.id and a.name=b.name and a.sex=b.sex
where a.ID & a.name & a.sex not in (select ID & name & sex from [;database=D:\C.mdb].表名)


--2、第二个问题

delete * from 表名
where ID & name & sex in (select ID & name & sex from [;database=D:\A.mdb].表名)


--3、第三个问题

insert into 表名 (id,name,sex)
select id,name,sex
from [;database=D:\B.mdb].表名
where ID & name & sex not in (select ID & name & sex from 表名)
------解决方案--------------------
1、具体程序实现,请到相应的语言版块去问吧,这里是SQL语句;
2、A、B、C的内容不同:三表有相同的KEY字段,不同是指整条记录,还是KEY字段,如
是整条记录
1.====
A、B、C的内容不同,现要从B中找出A中已有的重复数据,并将找出的相同数据保存至C.mdb,用VB如何实现;
insert into [;database=D:\C.mdb].tt (id,name,sex)
select a.ID,a.name,a.sex
from tt as a
inner join [;database=D:\B.mdb].tt as b on a.id=b.id and a.name=b.name and a.sex=b.sex


2、====
将1步骤找出的重复数据从B中删除;

delete * from tt
where ID & name & sex in (select ID & name & sex from [;database=D:\A.mdb].tt)
or
delete a.* from [;database=D:\b.mdb].tt a inner join [;database=D:\A.mdb].tt b
on a.ID=b.id and a.name=b.name and a.sex=b.sex

3、====
将删除重复数据后的B.mdb追加至A.MDB

insert into [;database=D:\a.mdb].tt (id,name,sex)
select id,name,sex
from [;database=D:\B.mdb].tt