MS ACCESSのクエリでリンクテーブルを作成せずに外部テーブルにアクセスする
2018年 05月 13日
Microsoft ACCESSでODBCやCSV、EXCELシート、他のACCESSデータベースファイル内のテーブルを参照する場合、リンクテーブルを使用するのが一般的です。
クエリで記述する場合、IN句を付けて外部データベースファイルを指定するやり方もあります。
この場合のIN句は1クエリ内で1つという制限があります。
一方で接続文字列形式で参照先を指定することも可能です。こちらはクエリ内で複数の外部データを指定可能。
ただし、あくまで抽出、結合などはローカルのACCESS内で行われるのでパススルークエリのようなパフォーマンスは期待できない。
それでも知っていると一々リンクテーブル設定しなくてすむので作業用に読み取りだけ行う場合などには重宝するやり方。
1.ODBCソース
[odbc;dsn=DSN名;uid=ユーザー名;pwd=パスワード;].[テーブル名]
2.他のACCESSデータベース内テーブル
[MS ACCESS;DATABASE=データベースファイルのパス名].[テーブル名];
3.EXCELファイルのシート、範囲
[excel 12.0;DATABASE=EXCELファイルのパス名;hdr=y;imex=1].[シート名$]
[excel 12.0;DATABASE=EXCELファイルのパス名;hdr=y;imex=1].[シート名$A1:B20]
とか
HDR =Y: 先頭行をクエリの項目名にする(データ行しかないならN)
IMEX =0:エクスポート モード
1:インポート モード
2:リンク モード
3.CSVファイル
[text;DATABASE=CSVファイルのフォルダ名;hdr=y].[CSVファイル名]
by nora1962jp | 2018-05-13 15:42 | DB