こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

やりたい事はアクセスの請求書発行システムのFORMから
取引先管理システムの取引先テーブルを参照したり、SQLの
請求書発行DBのビューやストアドで取引先管理DBのテーブルを
参照しいたいのです。

投稿日時 - 2008-12-06 10:02:38

QNo.4533716

すぐに回答ほしいです

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

同じスキーマというのが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で作成しておけば、そのオブジェクトは問題なく使うことができるはずです。

投稿日時 - 2008-12-06 11:34:50

お礼

> 同じスキーマというのがSQL Serverのインスタンスに相当するとして。。

用語の間違いでした、お恥ずかしい・・・

目的は教えていただいた「DB名.スキーマ名.オブジェクト名」で達成されました。

ありがとうございました。

投稿日時 - 2008-12-06 12:42:48

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問