1. 程式人生 > >Access跨資料庫查詢

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';