- ベストアンサー
SQLSERVER2005 ODBC接続について
- SQLSERVER2005のODBC接続について調べた結果、クライアントPCにODBCのデータソースを設定しなくてもリンクができる方法があることがわかりました。
- 具体的な方法はわかりませんが、SQLServer側で特別な設定をすることで実現できる可能性があります。
- また、同じ方法はSQLServer2000でもできるかどうかはわかりません。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
質問中にもあるようにODBCはデータソースなるものを設定して接続を行うが、これには大きく分けて2種類ある。 ・・・・今「ユーザDSNとシステムDSNですね。分かります。」と思いましたか? それは、「DSN接続」と「DSNレス接続」だ。DSN接続はさらに「ユーザDSN」、「システムDSN」、「ファイルDSN」の三つに分けられる。で、質問者が聞きたいのは「DSNレス接続」の事だと思われる。文字通りDSNなしにODBC接続を行うものだ。まぁこのキーワードで検索すれば情報はあほほど見つかるけど触りだけ説明しておこう。 CurrentDb.CreateTableDef("TABLENAMEinACCESS", "PASSWORD", "TABLENAMEinSQLSERVER", "ODBC;DRIVER=SQL Server;SERVER=(Local);DATABASE=NORTHWIND;UID=sa;PWD=saPWD") Access VBAで上の命令を実行するとODBC DSNの設定なしにODBC接続を行う事ができるのだ。 ちょっと話は変わるけど、別解として、DBEngine.RegisterDatabaseというメソッドを使うと、Access VBA上から動的にDSNを作成する事ができる。が、これはDSNが作られるのでDSNレスではない。 ところで、Access+SQL ServerでODBC接続をしている人を見る度に「なんでAccess Projectにしないのかなぁ」と思う。Microsoft Accessは、バックエンドに自分自身などMDBを使う「Access Database」と、バックエンドにSQL Serverを使う「Access Project」の2種類を使う事ができる。 Access Projectは、ODBCではなくOLEDBを用いてSQL Serverのテーブルを直接見に行くものだ。ファイルの拡張子はmdbではなくadpになる。SQL ServerのテーブルがそのままAccessのテーブルであるかのように操作できるため、フォームとレポートはAccess、テーブルとクエリ(ビュー)はSQL Serverと、Accessでシステムを作るのと全く同じ感覚で簡単にC/Sシステムに格上げする事ができるのだ。
お礼
とてもわかりやすい解説ありがとうございます!! 教えていただいたやり方で実現できました! ありがとうございました!!