AccessVBAですが、、、

解決


あっさん  2006-11-02 00:53:06  No: 97090

スレ違いかもしれませんが、どなたかよろしければご教示ください。

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


あっさん  2006-11-02 01:42:23  No: 97091

他サイトにて同様の事例を発見し、解決しました。
'SQLパススルークエリーなるもので、クエリにODBC接続文字としてUserID/Password等の情報を設定してあげる必要があるみたいですね。
良ければご参照ください。

http://park7.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200504/05040040.txt


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加