重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

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

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

A 回答 (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で作成しておけば、そのオブジェクトは問題なく使うことができるはずです。
    • good
    • 0
この回答へのお礼

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

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

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

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

お礼日時:2008/12/06 12:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す