実行されるSQL文の制御が難しいリンクテーブルではなく、自分が書いたSQL文がPostgreSQLでそのまま実行される「ODBC Direct」と「パススルークエリ」を使ってアプリケーションを作ることを考えます。 現在、内部ネットワークにあるAccessアプリケーション上から、外部ネットワークSQL Server へのリンクテーブルを作成しております。本AccessアプリケーションをどのPCや、環境にコピーしても外部ネットワークのSQLServerにアクセスできる パススルークエリを実行していないからなにも起こりません。 Executeメソッドで実行しないとです。 道程からゴールがちょっと解らないかったのですが、接続先変更が要件で、パススルークエリを実行するということであれば、CreateQueryDefってのもありかなと。 【MS Access】動的にパススルークエリを作成する Accessでシステム開発をする場合、リンクテーブルを介したクエリを作成し、そのクエリをフォームに連携させて表示させたり、検索フォームの検索時に使用する場合もあるかと思います。 Set Me.Recordset=ServerExecute(“exec (‘select 1 as test’)”,”DSN=xxxx;~~~”,True,dbOpenSnapshot) 上記の様にVBAをわざわざ使わなくてもセオリー通りAccessでパススルークエリを作成し、 それをフォームのレコードソースに設定すれば表示は可能のはずです。 2006.2 ACCESS 2000 SP-3 + PostgreSQL 8.0.6.

SQL Server では文字はUnicodeで扱っているようですが、Access(というよりVBAの開発環境のVBE)がUnicodeに対応していないようです。 幸い、このような処理を行っている箇所は少なかったので、パススルークエリを利用して、SQL Server 側で処理するようにしました。