• ベストアンサー

他のDBのオブジェクトの利用

同一スキーマ上の別のDBのテーブルを使ってビューを作成したり ストアドを作成したりする事は可能でしょうか? また、アクセスから接続しているDB以外のDBのテーブルに フォームやVBAからアクセスする事は可能でしょうか? (要は、アクセスのMDBのリンクテーブルの接続先が複数ある様な イメージです) やりたい事はアクセスの請求書発行システムのFORMから 取引先管理システムの取引先テーブルを参照したり、SQLの 請求書発行DBのビューやストアドで取引先管理DBのテーブルを 参照しいたいのです。

質問者が選んだベストアンサー

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

同じスキーマというのがSQL Serverのインスタンスに相当するとして。。 AccessではDB1に接続、DB2のTBL1を参照する場合、 1)テーブル参照の表記をDB名.スキーマ名.オブジェクト名にすれば、SQLの発行は可能 SELECT * FROM DB2.dbo.TBL1 2)このようなテーブルの直接参照をadpが認めてくれない場合、接続先のDB1にそれを参照するオブジェクトを作って参照すればよいです。 (VIEWでも更新条件を満たせば更新可能なのはご案内の通り) CREATE VIEW VIEW1 AS SELECT * FROM DB2.dbo.TBL1 極端にいえば、同じスキーマになくても、あらかじめSQL Serverでリンクサーバを設定しておけば、 CREATE VIEW VIEW2 AS SELECT * FROM SERVER2.DB3.dbo.TBL1 として同じことが可能です。 ストアドプロシージャも同様です。 mdbでリンクテーブルを張る場合には2)の方法が一般的です。 これらをadpから作ったことはないので、このようなViewやストアドをadpから作らせてもらえるかどうかは今は確認できませんが、仮にAccessから作成できなくても、あらかじめSQL Server Management Studioで作成しておけば、そのオブジェクトは問題なく使うことができるはずです。

SEsyo
質問者

お礼

> 同じスキーマというのがSQL Serverのインスタンスに相当するとして。。 用語の間違いでした、お恥ずかしい・・・ 目的は教えていただいた「DB名.スキーマ名.オブジェクト名」で達成されました。 ありがとうございました。

関連するQ&A