Access跨資料庫查詢
當前資料庫為testA,要查詢資料庫testB中的某個表內容,我們就可以採用如下方法。
第一種:select * from 表名in 'testB的路徑';
例如:select * from qybm in 'd:\accessdb\testB.mdb';
第二種:select * from [;database=testB的路徑;pwd=密碼].表名
如果沒密碼,可省略
例如:select * from [;database=d:\accessdb\testB.mdb].qybm;
如果是組合查詢:
兩個表都在testB資料庫,可採用:
select * from qybm1,qybm2 in 'd:\accessdb\testB.mdb' where qybm1.qydm=qybm2.qydm;
查詢哪個資料庫寫一個in 'd:\accessdb\testB.mdb'就可以,下面方式是錯誤的:
select * from qybm1 in 'd:\accessdb\testB.mdb',qybm2 in 'd:\accessdb\testB.mdb' where qybm1.qydm=qybm2.qydm;
也可以採用第二種方法:就是:
select * from [;database=d:\accessdb\testB.mdb].qybm1,[;database=d:\accessdb\testB.mdb].qybm2 where qybm1.qydm=qybm2.qydm;
如果表qybm1在testA資料庫,表qybm2在testB資料庫中,為了區分不同庫,只能用第二種方法:
select * from [;database=d:\accessdb\testA.mdb].qybm1,[;database=d:\accessdb\testB.mdb].qybm2 where qybm1.qydm=qybm2.qydm;
當前庫為testA的話,可省略成:
select * from qybm1,[;database=d:\accessdb\testB.mdb].qybm2 where qybm1.qydm=qybm2.qydm;
可以根據實際需要靈活運用,例如:
select * from qybm1,[;database=d:\accessdb\testB.mdb].qybm2 in 'd:\accessdb\testA.mdb where qybm1.qydm=qybm2.qydm;
下面寫幾種任意運用的示例:
insert into qybm1 select * from [;database=d:\accessdb\testB.mdb].qybm2;
insert into qybm1 select * from qybm2 in 'd:\accessdb\testB.mdb';
insert into qybm1 in 'd:\accessdb\testA.mdb' select * from qybm2 in 'd:\accessdb\testB.mdb';
insert into [;database=d:\accessdb\testA.mdb].qybm1 select * from qybm2 in 'd:\accessdb\testB.mdb';