スレ違いかもしれませんが、どなたかよろしければご教示ください。
Accessの*.mdbファイル(①)から、VBAでOracleデータベースへリンクしている別の*.mdbファイル(②)内のテーブルを参照しようとしています。
その際、ADODB.Connection/ADODB.Recordsetを使用してSelectクエリを投げているのですが、Connectionは正常に行えるものの、Recordsetオープン時に
「User名/パスワードを入力してください」
というダイアログが表示されてしまいます。
手入力で入力を行えば、正常に動作するのですが、VBA上で自動解決したいと考えております。
●環境●
Access:Access2000 SP-3
ODBC for Oracle:2.573.6200.00 2002/7/22
●ソース概要●
Dim CN as ADODB.Connection
Dim RS as ADODB.Recordset
const File2 = "D:\Link.mdb"
CN.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & File2 ・・・①
SQL="SELECT * FROM LinkTabel"
RS.Open SQL, CN, adOpenStatic, adLockReadOnly, adCmdText ・・・②
:
:
上記①は正常に処理されるのですが、②の部分でUserID/Password入力フォームが表示されてしまいます。
User ID/Passwordは、ADODB.Connectionオープン時(①)において指定するやり方は知っておりますが、当該リンクテーブルについては、テーブル自体にID/Passwordが割り当てられているようなのです。
そのため、
CN.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & File2 _
& "; User ID=aaa; Password=aaa;"
で実行するとADODB.Connectionオープン時にエラーとなります。
('aaa'は、指定テーブルのID/Passwordです)
なお、Oracleテーブルは他部署のものを使用しており、そちら側の設定を変えないで、当方側のプログラムで解決したいと考えています。
お心当たりの方がいらっしゃいましたら、ご教示お願いいたします。
s
他サイトにて同様の事例を発見し、解決しました。
'SQLパススルークエリーなるもので、クエリにODBC接続文字としてUserID/Password等の情報を設定してあげる必要があるみたいですね。
良ければご参照ください。
http://park7.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200504/05040040.txt
ツイート | ![]() |