PR

【Access VBA】SQL Serverなどの外部データベースへのリンクテーブル作成方法

Access
記事内に広告を含む場合があります。

Accessにて、SQL ServerやOracleなどの外部データベースに接続するには、ODBCのDSNを作成してリンクテーブルを張る方法が、ネット上で多く見られます。
しかし、VBAを使えば簡単にリンクテーブルを張れますので、その方法をご説明いたします。

/

Accessを書籍でコツコツ学習したい方はこちら

ODBC接続文字列について

VBAでリンクテーブルを張るには、ODBC接続文字列というものをコーディングする必要があります。
以下に、代表的なDBMSでの接続文字列の記述方法をまとめました。

SQL Server

ODBC;Driver={SQL Server};Server=<接続先サーバ名>;Database=<データベース名>;Uid=<ユーザID>;Pwd=<パスワード>

Oracle(Microsoft製)

ODBC;Driver={Microsoft ODBC for Oracle};Server=<接続先サーバ名>;UID=<ユーザID>;PWD=<パスワード>

Oracle(Oracle製)

ODBC;Driver={Oracle in OraHome92};DBQ=<接続先サーバ名>;UID=<ユーザID>;PWD=<パスワード>

PostgreSQL

ODBC;Driver={PostgreSQL};Server=<接続先サーバ名>;Database=<データベース名>;UID=<ユーザID>;PWD=<パスワード>;Port=5432;

MySQL

ODBC;Driver={mySQL ODBC 3.51 Driver};Server=<接続先サーバ名>;Port=3306;Option=131072;Stmt=SET CHARACTER SET SJIS;Database=<データベース名>;Uid=<ユーザID>;Pwd=<パスワード>

リンクテーブルの張り方

VBAで実際にリンクテーブルを張る方法は、以下の通りです。

DoCmd.TransferDatabase acLink, "ODBC", <接続文字列>, acTable, <リンク元テーブル名>, <リンク先テーブル名>, False

SQL Serverでのサンプルコーディング

実際にリンクテーブルを張るためのコーディングは、以下のようになります。(SQL Serverでのサンプルです。)

Dim LinkStr As String

LinkStr = "ODBC;DRIVER={SQL Server};SERVER=Server1;DATABASE=PracticeDB;Trusted_Connection=YES;Uid=123456;Pwd=xxxxxx"

DoCmd.TransferDatabase acLink, "ODBC", LinkStr, acTable, "PracticeTable1", "link_PracticeTable1", False

このように、Accessにリンクテーブルが張られます。

Accessを書籍でコツコツ学習したい方はこちら
VBAをガッツリ学べるスクールについて

コメント

タイトルとURLをコピーしました