• ベストアンサー

Accessで2種類のデータベースを結合する方法

Accessで2種類のデータベースを結合する方法 AccessでMySQLとSQLServerというような2種類のデータベースをJOINしたSQLを使いたいと思います。 Access上でリンクしておいてクエリー定義すれば出来ることはわかっているのですが、高速化かつODBCの設定をしなくても済むように出来ればDAOを使って接続したいと思っています。 このような別データベースを結合するSQLは記述することは無理でしょうか? 又は別のリンクテーブルを使わなくても済む方法がありましたら、教えていただけると助かります。 Accessのバージョンは2007です。

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

  • ベストアンサー
  • nora1962
  • ベストアンサー率60% (431/717)
回答No.2

「高速化かつODBCの設定をしなくても済むように出来ればDAOを使って接続したい」 という要求じたい無理があると思います。 ODBCのDSNを設定せずに接続したいというのなら、 SELECT * FROM [odbc;Driver={SQL Server};Server=サーバー名;Uid=ユーザー名;Pwd=パスワード; Database=データベース;].[テーブル名] でアクセス可能ですが、リンクテーブルの方が高速かなあ。

tmz400
質問者

お礼

有難うございます。 接続文字列を使ってDAOで接続したほうがリンクより早いと理解していたのですが、違うのでしょうか? 2つの接続文字列を使ってSQLでJOINしてみましたが、駄目なようです。 エラーは出ませんが、DSNの設定ダイヤログが何度も出てきます。 主テーブルをDAOで接続してフィールドのコントロールソースに結合テーブルで書くのは明らかに遅そうなので素直にリンクすることにしようと思います。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

接続先が違うのに、どうやって同じ土俵に乗せようと いうのでしょう?Accessのリンクテーブルを使わない でやる方法はないと思いますよ。

tmz400
質問者

お礼

有難うございます。 接続文字列を使ってやれないかなと思ったのですが、無理そうですね。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • SQLクエリでデータベースが壊れる?

    AccessアプリでSQL Serverデータベースを更新しています。 データベースをODBCデータソースとして登録して、AccessdeそのODBCデータソースへのリンクテーブルを作っています。 データベースが何回か壊れたのですが、AccessVBAから発行したリンクテーブルへのSQLクエリでデータベースが壊れるようなことはあるんでしょうか? あるとしたら、そのクエリを発行すると必ず壊れると思うんですが・・・。 同じAccessアプリを使っても、データベースが壊れない環境もありますし・・・。 データベースが壊れた原因がわからなくて困っています。 Windows 7、SQL Server 2008 R2 Express です。

  • ODBCを使い外部データベースとリンクして値を参照しているAccess

    ODBCを使い外部データベースとリンクして値を参照しているAccessアプリケーションを使おうと思っています。 ところが、アプリケーションを終了した後、Excelのデータベースクエリーを使うと、パスワードキャッシュが働いてしまうのか、パスワードの認証がスキップされるために、どんなデータもダウンロードし放題ということに気づきました。 DNSを使用せずにODBCの接続文字列を指定してパススルークエリーを使おうと思ったのですが、接続するデータベースが2種類あると接続ができないようなので、リンクの方法を取らざるを得ないようです。 ODBCドライバ、もしくはデータベースのアカウントのアクセス権の与え方で解決できうる問題なのかもしれませんが、ODBC専用のアカウントを使用しています。 ODBCのパスワードキャッシュをクリアする方法は有るのでしょうか? ちなみにデータベースはMySQLとDB2です。 何らかアドバイス頂ければ幸いです。

  • Accessのクエリについて

    いつもお世話になっております。 Accessクエリについて、教えてください。 退職者の作ったMDBなのですが、ODBC経由でSQLServerに接続をしています。 リンクテーブルをはっているのですが、ここでよくわからないことがあります。 データベースウインドのクエリにたくさんのクエリが登録されているのですが、 そこでクエリの対象になっているテーブルがかならずしもリンクテーブルでは ないということです。もちろん、SQLServerには存在しているのですが、 私の理解レベルだとリンクテーブルでもないのに、クエリでデータが取得できて いることが不思議です。 詳しい人にはなんでもないのでしょうが、お分かりの方がおられましたら お教えください。

  • データベースの接続方法について

    データベースの接続方法について勉強しています。 ADOやDAO,ADODB,OLDDBやODBC等調べていて混乱しています。 上記について分かり易い書籍をご存知でしたら教えていただけませんでしょうか。 現在使用している環境は ・SQLserver2005 ・VB 2008 です。

  • Accessの内部結合

    こんにちは。 Accessでcateテーブルとgoodsテーブルがあります。 select * from goods inner join cate on goods.cateid = cate.id; クエリデザインで、テーブルとテーブルを結合して上記のようなSQLができました。 これは動作することを確認しました。 SQLビューで下記のようなSQLを書きました。 select * from goods inner join cate on left(goods.cateid,5) = cate.id; しかしながら、動きませんでした。 VBAを使わずに、Accessの標準のクエリデザインから上記のようなSQLを実行させることは可能でしょうか? クエリデザインでselect left(cateid,5) as cateid from goodsというTESTクエリをつくり、TESTクエリとcateテーブルとジョインさせれば解決しそうなことはわかるのですが・・・ 宜しくお願いします。

  • ACCESS2003のテーブルのリンクでODBCデータベースが選択できない

    このカテゴリであってるかわかりませんが、SymantecのNortonInternetSecurity2006をインストール後、ACCESS2003の外部データの取り込みでテーブルのリンクを選択し、ファイルの種類で「ODBCデータベース」を選択しても、選択するウィンドウが表示されません。SQLServer2000のデータを見るために、よく使っているため、すごく困っています。

  • データベースの種類を教えて下さい

    既に動いているデーターベースをMySQLもしくはMS-SQLに移行したいのですが、作成した時の情報がなく困っています。 データベースフォルダに下記の3つのファイルがあります。 これらから、どういう種類のデータベースかご存知の方は教えて下さい。 CARD.CDB CINFO.INF SANUM.DBF ちなみに、MS-AccessからdBASEを指定しても取り込めませんでした。

  • テーブルを結合して新規にテーブルに・・・

    アクセス2003でSQLを組んでデータベースを作っています。 まず、ユニオンクエリを使ってAクエリとBクエリを結合しました。 この結合したものを新規にテーブルを作成したいのですが、どうすれば良いでしょうか? 手順を教えて頂ければ幸いです。 よろしくお願いします。

  • SQLサーバーに保存してあるクエリをアクセスで開くには?

    SQLサーバーに保存してある「クエリ1.sql」をアクセスで開くにはどうすればいいでしょう? アクセスで「リンクテーブル」→「ODBC接続」 でテーブルのリンクはできているのですが クエリをリンクするにはどうすればいいでしょうか? 宜しくお願い致します。

  • データベースのテーブルやカラム情報の取得

    データベースの定義を取得するSQL文を教えてください。 データベースはAccessとMySQLです。 得たい情報はデータベースにあるテーブルとカラムです。 例えば、テーブルがTblAとTblBがあって、 それぞれに整数型のFld1と文字型のFlb2があるとします。 この定義情報を取得したいのです。 テーブルだけでなくクエリ(ビュー)の定義情報も取得できるでしょうか。

    • ベストアンサー
    • MySQL
このQ&Aのポイント
  • ノートPCの映像を外部モニタに映す方法やケーブル変換について解説します。
  • 外部モニタへの映像出力をシンプルにするための方法やケーブル変換の選択肢について紹介します。
  • 映像出力も給電も一本で済ます方法や、劣化の少ない映像出力の方法について考えてみましょう。
回答を見る