ADOの接続文字列について
2021-08-01 00:00:00
ExcelのVBAからADOを利用してDBのデータにアクセスする際に使う接続文字列について、いろいろなパターンがあるのでまとめてみました。
ODBCデータソースを設定して使う
ODBCデータソースアドミニストレーターを使ってユーザーDSNやシステムDSNを設定して利用する方法です。64bitと32bitがあるので、Excelのバージョンに合わせて選んでください。登録されたDSNの名前を接続文字列に指定します。会社の共有DBなどのシステムDSNが登録されている場合はこの方法が便利だと思います。
Set conn = CreateObject("ADODB.Connection") conn.ConnectionString = "DSN=MyDB;UID=******;PWD=******"
ファイルDSNを使う
ODBCデータソースアドミニストレーターからドライバを指定して作成することもできますが、ただのテキストファイルなのでメモ帳などで編集もできます。接続文字列にファイル名を指定します。ファイルなので簡単に設定を共有できるのがいいところだと思います。
conn.ConnectionString = "FileDSN=C:\workarea\MyDb2.dsn;UID=****;PWD=****;DB=mydb"
ODBCドライバーを指定する
事前に登録をせずに、直接ドライバーとホスト名などを接続文字列に指定して使用することもできます。ドライバー名は下の画面で確認することができます。
conn.ConnectionString = "DRIVER={MariaDB ODBC 3.1 Driver};SERVER=192.168.**.**;PORT= 3306;UID=*****;PWD=*****;DB=mydb"
ODBC接続に指定できるパラメータ
UID、PWD以外のパラメータは接続先のDBによって違います。(各社のページにリンクを貼っています)
MS Access | DBQ=[ファイルパス] |
Oracle | DBQ=[TNSサービス名] |
SQL Server | Server=[サーバ名,ポート];Database=[データベース] |
Sybase | Server=[サーバ名];Port=[ポート];Database=[データベース] |
OLEプロバイダを指定する
OLEプロバイダが用意されている場合は、プロバイダを利用した接続文字列も使えます。ODBCとは同じパラメータでも名前が違う場合があります。あまり使ったことないので参考程度で。
MS Access | Provider=Microsoft.ACE.OLEDB.16.0;Data Source=[MDBファイル名]; |
Oracle | Provider=MSOLEDBSQL;Server=[サーバ名,ポート];UID=[ユーザID];PWD=[パスワード]; |
SQL Server | Provider=OraOLEDB.Oracle;Data Source=[TNSサービス名];User Id=[ユーザID];Password=[パスワード]; |