ADO で DB にアクセス

ID・パスワード設定付きのDBにMDB経由でアクセスしてテーブルを検索したいと思い
こんな感じ↓でやってたけど、どうもうまくいかない。
指定のMDBファイルはDBのテーブルへのリンクが張ってあるんですけど
これでコネクションを確立しようとするとエラーが返ってくる。
Open の第2,第3引数にIDとパスワードを設定するパターンでも駄目。
(エラーをこぴって持って帰って来れば良かった)

  connection= WIN32OLE.new("ADODB.Connection")
  connstr = "Driver={Microsoft Access Driver (*.mdb)};"
  connstr << "DBQ=#{mdb_file_name};"
  connstr << "User ID=#{user_id};Password=#{password};"
  connection.Open(connstr)


どうにも行き詰まったのでネットで検索した所、データソース名でもいける事を発見。
こんな感じ↓に変更

  connection= WIN32OLE.new("ADODB.Connection")
  statement = "DSN=#{data_source_name};User ID=#{user_id};Password=#{password};"
  connection.Open(statement)


MDBファイルのパスを指定するのではなく、データソースに登録してある名称を指定するとうまくいきました。
MDB経由では駄目なんだろうか・・・・。
結局MDBもデータソース見てるから一緒なんですけどね。


あとは参照用のオプションパラメータをどう設定するのかが謎
for read only を単純にSQLに付けるだけでいいのかな。


って、データソースを登録する際に参照パラメータを設定すればいいのか・・・今気が付いた。
でも、設定してない人もいるかもしれないしなぁ。