質問: server.createobject("adodb.recordset") response.write "point004" objrs.open strsql, objconn response.write "point005" odbc を使う方法もあるようですが今回は odbc を使わないでmdbファイルを参照したいのです。 よろしくお願いします。 環境 os→windows vista ultimate access→access2000 iis→iis7.0 使用言語→vbscript
回答: mesomokyuさん、こんにちは。 nas02です。 どうも、vistaでは設定が変わっているみたいですね。 最初の接続文字列からすると、下記サイトからダウンロードできる「2007 office system ドライバ: データ接続コンポーネント」は インストールしてあるのでしょうか? http://www.microsoft.com/downloads/details.aspx?displaylang=ja&familyid=7554f536-8c28-4598-9b72-ef94e038c891 それでしたら、接続文字列のproviderを"microsoft.ace.oledb.12.0"に設定すれば、良いと思いますがいかがでしょうか? ※"microsoft.ace.oledb.12.0"がレジストリに登録されてあるか、レジストリエディタ(regedit)で検索してチェックすると確実です。 もし、未インストールで上記のコンポーネントはインストールしないという事でしたら、レジストリから接続文字列を調べる必要があります。 1.「c:\windows\system32\」のフォルダ以下を「msjet」で検索して以下のモジュールがあることを確認します。 ・msjet40.dll ・msjetoledb40.dll → これがなかったら、素直に上記のモジュールをインストールしましょう。 2.レジストリエディタ(regedit)を起動して、マイ コンピュータから「msjetoledb40.dll」を検索します。 因みにxpでは、以下の場所がヒットします。(複数ヒットしますが、「ole db provider」が同列にある方を調べます) "hkey_classes_root\clsid\{dee35070-506b-11cf-b1aa-00aa00b8de95}\inprocserver32" 3.次に、一つ上の場所をクリックします。 xpでいえば、 "hkey_classes_root\clsid\{dee35070-506b-11cf-b1aa-00aa00b8de95}" です。 そこの(既定)にデータが入っていますので、その文字列をコピーします。 xpの場合は、「(既定):microsoft.jet.oledb.4.0」となっています。 4.コピーした文字列で、最初から検索します。(3.でヒットする「hkey_classes_root\clsid」や下位にclsidがないのは無視します) xpの場合は、以下の場所がヒットします。 "hkey_classes_root\microsoft.jet.oledb.4.0" 上記のヒットしたデータのキーから「hkey_classes_root\」を抜いた値を接続文字列に使います。(多分、3.の値と同じ可能性あり) ※vistaがどんな設定になっているのか非常に興味ありますので、もし分りましたら教えて下さい。 vistaを持ってないのでこれ以上は調べられませんが、多分これでいけると思います。