SqlServerからリンクテーブルなどでAccessを接続しているODBC接続ですが、データベースなどを増やして新たな接続を増やすと、それに伴いAccess側のPC(Windows10)のODBC接続設定を増やしていました。
それが、
ココがポイント
ODBCデータソース(DSN)設定をしなくてもAccessなどのリンクテーブルが接続できる方法との違い
が分かったので備忘録にしました。
疑問は、2つの接続方法から始まった!
リンクテーブルやパススルークエリの
ODBC接続プロパティ
ODBC接続のプロパティを見ると、2種類ある
のに気づき、そのどちらでも接続はできるが、何で2種類あるのか?という疑問が湧いてきました。
ODBC;Driver={SQL Server};SERVER=ServerName\SQLEXPRESS;UID=user2;PWD=japan2020$$;DATABASE=DB2
そして、下記のようなサーバー情報を入れないパターン。
ODBC;DSN=ODBC2;UID=user2;PWD=japan2020$$;DATABASE=DB2;LANGUAGE=日本語
なんでODBC接続設定をPC上で行っているのに、わざわざサーバー情報を設定しなければならないのか!?
試しにPC上のODBC設定を消して見た
試しにPC(Windows10)のODBC接続設定を消してAccessのリンクテーブルを確認してみました。
違いポイント
サーバー情報が入っている方はSqlServerに接続できるぞ!
この事から、ネット検索すると下記のような有力情報のあるぺーじがありました。
SQL Server:ODBC接続する際にODBCデータソース(DSN)を作成せずにSQL Serverのデータベースに接続する(ODBCデータソースレス接続)方法
PC上でのODBC接続設定は絶対に必要・・・??
数年、SqlserverとAccessをODBC接続させて利用してきましたが、
PC上でODBC接続設定は接待に必要・・・じゃなかった!!
自分の中では今まで何の疑問もなく利用してきたので新たな発見でした。
ポイント
今回の事から、Accessで作成したシステムなどを配布する時に、サーバー情報付きのODBC設定を、リンクテーブルやパススルークエリ、ストアド実行VBAなどにやっておけば、それを利用するPCのODBC接続設定をしなくてもよいって言う事がわかりました。
ただ、注意点として、ODBC接続するための、ドライバはPCに設定はしておかなければなりません。
なかなか、このような事を解説している本なども無いですからね。
今後の開発に非常に参考になる内容でした。