有关access的问题,高手请进(50分)

  • 主题发起人 主题发起人 towady
  • 开始时间 开始时间
T

towady

Unregistered / Unconfirmed
GUEST, unregistred user!
现在有两个MDB文件
a.mdb中有一个表zhibiaoBase,字段结构是:
id(自动编号) zhibiaoID(文本类型) zhibiao(文本类型)

b.mdb中有一个表person,字段结构是:
id(自动编号) zhibiaoID(数字类型)

其中person.zhibiaoID对应zhibiaoBase.zhibiaoID
问题是,如何在进行查询时,用TAdoQuery控件对不同的数据库文件联合查询?
 
select zhibiaoBase.*,mytable.* from zhibiaoBase join
(select * from OPENROWSET('Microsoft.Jet.OLEDB.4.0','d:/b.mdb';'admin';'',
'select * from person')) mytable on zhibiaoBase.zhibiaoID=mytable.zhibiaoID
前一次写了点提交,没想到居然没有成功
 
首先我先认为你的mdb文件在一起
把adoconnection配连接串指向一个 mdb文件
然后可以写类似的语句
procedure TForm1.Button1Click(Sender: TObject);
begin
ADODataSet1.Close;
ADODataSet1.CommandText := 'SELECT a.*,b.* FROM [4.mdb].Table1 AS a , Table1 AS b WHERE a.FB = b.FB';
ADODataSet1.Open;
end;

其中4.mdb是相对路径 当然你也可以写绝对路径

想要源码留下油箱
 
连接a.mdb
执行
select a.*,b.*
from zhibiaoBase a left join person b IN [b.mdb] on a.zhibiaoID = b.zhibiaoID
 
Avalon:towady@gmail.com
 
to
轻舞肥羊
想当然吧
to Avalon
表的顺序应该调一下,
'SELECT a.*,b.* FROM [4.mdb].Table1 AS b , Table1 AS a WHERE a.FB = b.FB'
且两个数据库文件应在应用程序目录下

我的也不对,Access不支持嵌套
 
2个数据库文件当然都和应用程序放在一起 不过我是纯粹图个省事了 [:D][:D]
 
参考了Avalon的方法,并结合实际,终于解决了问题。
 
多人接受答案了。
 
后退
顶部