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をガッツリ学べるスクールについて
コメント