• 締切済み

ASP + MDBで発生したエラーが解決できません。。。

こんにちは。 いま、ローカルPCでシステム開発をしています。 環境としては、  WindowsXP + IIS + ASP + MDB(ACCESS2003) です。 いま、MDBにDB接続して、データを取得しようとしているのですが、以下のエラーが発生していて、治りません。 【エラータイプ】 Microsoft VBScript 実行時エラー (0x800A01B6) オブジェクトでサポートされていないプロパティまたはメソッドです。:Open ソースコードは以下の通りです。 【ソース】 'コネクションオブジェクト Set objCon = Server.CreateObject("ADODB.Connection") objCon.Provider = "Microsoft.Jet.OLEDB.4.0" objCon.ConnectionString = "C:\test.mdb" objCon.Open 'レコードセットオブジェクト objRs = Server.CreateObject("ADODB.Recordset") objRs.Open strSQL, objCon, 3 上記のobjRs.Open→Set objRs = objCon.Executeに変更するとエラーは発生しないのですが、RecordCountなどのプロパティが利用できません。 色々と調査したのですが、全くわかりません。 どなたか情報をご存知でしたら、ぜひともご教示ください。 宜しくお願いします。

みんなの回答

回答No.2

こちらが参考になるかもしれません。 http://www.site-cooler.com/kwl/asp/17.htm

全文を見る
すると、全ての回答が全文表示されます。
  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.1

>objRs = Server.CreateObject("ADODB.Recordset") にSetをつけるとどうなりますか? Set objRs = Server.CreateObject("ADODB.Recordset")

hatao
質問者

お礼

Bonjinさん、本当にありがとうございます! Bonjinさんのご指摘通りに修正したら、バッチリ稼動しました! 本当にありがとうございます。 早速、他のソースについても修正します。 こっちの方がベストですね。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • レコードセットのオープン

    修行中のものです。。。 エラーが発生してしまします。 間違いの点をお教え下さい。 自分的には”レコードセットのオープン”がいまいち分かりません。 【 objCon.Open 】 Dim objCon Dim objRS '##### コネクションオブジェクトの生成 ##### Set objCon = Server.CreateObject("ADODB.Connection") '##### レコードセットオブジェクトの生成 ##### Set objRS = Server.CreateObject("ADODB.Recordset") '##### 接続用パレメータの設定 ##### objCon.Provider = "Microsoft.Jet.OLEDB.4.0" '##### MDBの絶対パス指定 ##### objCon.ConnectionString = (Server.MapPath("/") & "データベース") '##### コネクションのオープン ##### objCon.Open '##### データ参照 ##### objRS = "select [ID],[NAME],[URL],[CM1],[CM2],[CM3] from SITE_DATA" %> レコード件数 <%=objRS.RecordCount%> <hr> <% '##### レコードセットのクローズ ##### objRS.Close Set objRS = Nothing '##### コネクションのクローズ ##### objCon.Close Set objCon = Nothing %> お願いします

  • VBscriptでAccessに接続。PCで結果が異なる。

    VBscriptでAccessに接続。 PC1ではDBの検索結果が表示されますが PC2では表示されません。 PC1はWindows XP Pro IIS Access 2000 PC2はWindows server 2003 IIs Access 2000 当然ながらソースは同じです。 プログラムの問題でしょうか。 それともなにか設定の問題でしょうか。 VBscript 部分 <% '========================================================================================================== Dim objCon Dim objRS Dim strSQL '======================================= dim objfs dim strFDIRNAME Set objFS = Server.CreateObject("Scripting.FileSystemObject") strFDIRNAME = Server.MapPath(".") 'フォルダー名取得 '======================================= '##### コネクションオブジェクトの生成 ##### Set objCon = Server.CreateObject("ADODB.Connection") '##### 接続用パレメータの設定 ##### objCon.Provider = "Microsoft.Jet.OLEDB.4.0" Set objRS = Server.CreateObject("ADODB.Recordset") '##### MDBの絶対パス指定 ##### objCon.ConnectionString =strFDIRNAME & "\" & "meibo.mdb" '##### コネクションのオープン ##### objCon.Open '##### SQLの作成 ##### strSQL = "select DISTINCT 社員名 from TABLE " '##### レコードセットのオープン ##### objRS.Open strSQL, objCon, 3 Recnm=objRS.RecordCount Do Until objRS.EOF %> <OPTION value="<%=objRS("社員名").value%>"><%=objRS("社員名").value%></OPTION> <% '##### 次のレコードを参照 ##### objRS.MoveNext Loop end if %> <% '##### コネクションのクローズ ##### objCon.Close '##### コネクションオブジェクトの解放 ##### Set objCon = Nothing '================ %>

  • IIS7.0 と ASP を使ってMDBファイルを参照したい

    みなさんこんばんわ。 IIS7.0 と ASP を使ってMDBファイルを参照したいのですが、 エラーが出て、ページを開くことが出来ません。 エラー表示は HTTP500内部サーバーエラー と表示されます。 エラーでとまる部分は以下コードの Point002 と Point003 の間です。 Response.Write "<p>Point001" Set Objconn = Server.CreateObject("ADODB.Connection") Response.Write "<p>Point002" Objconn.open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath(DB_Pass) Response.Write "<p>Point003" StrSQL="select * from " & Table_Name Set Objrs = Server.CreateObject("ADODB.Recordset") Response.Write "<p>Point004" Objrs.Open StrSQL, ObjConn Response.Write "<p>Point005" ODBC を使う方法もあるようですが今回は ODBC を使わないでMDBファイルを参照したいのです。 よろしくお願いします。 環境 OS→Windows Vista Ultimate Access→Access2000 IIS→IIS7.0 使用言語→VBScript

  • ASPでボタンクリック時にフォームのリフレッシュ

    こんばんわ。 質問です。 ASPで作成した質問ページに表示されている質問の回答と、テキストボックスに入力されている文字列をリフレッシュしたいです。 質問の回答は、ラジオボタンをチェックしてあります。 そして、このあと、ADO接続で、SQLサーバーに接続して、テキストボックスに入力されていた文字列を選択し、文字列がDB内にあれば、その文字列をテキストボックスに再表示します。 以下のようなコードを書きましたが、何も表示されません。 <% Dim objCon Dim objRS Dim strSQL Dim strUserID Dim strOCD 'フォーム内のリフレッシュを行いたい ' コネクションオブジェクトの生成 Set objCon = Server.CreateObject("ADODB.Connection") Set objRS = Server.CreateObject("ADODB.Connection") ' コネクションストリングの設定 objCon.ConnectionString = "Provider=SQLOLEDB;" & _ "User ID=id;" & _ "Password=pw;" & _ "Data Source=server1;" & _ "Initial Catalog=data1" ' コネクションのオープン objCon.Open strUserID = obj.uerID.value set strSQL = "Select ID, dnum from emp Where CorpId='"& obj.userID.value &"'" 'レコードセットのオープン objRS.Open strSQL, objCon, 3 'EOF が True になるまで繰り返し Do Until objRS.EOF if objrs.RecordCount=0 then Msg "正しいIDを入力してください! Insert correct ID ! " else obj.ID.value = strSQL("txtid") obj.dnum.value = strSQL("txtdnum") end if '次のレコードを参照 objRS.MoveNext Loop 'コネクションのクローズ objCon.Close ' コネクションオブジェクトの解放 Set objCon = Nothing %> ご教示いただけると、幸いです。

  • MDBパスワード設定済みDBへ接続

    MDBパスワード設定済み(排他オープンからの設定)のDBへ接続を試みているのですが、うまく 接続できません。 ご教授ください。 ASP vbscript <ソース> set objCon=ServerCreateObject("ADODB.Connection") cn1 = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "DataSource=" & Server.path("db.mdb") & ";Jet OLEDB:Database Password=password;" objCon.Open cn1 <エラー> Microsoft JET Database Engine エラー '80040e4d' パスワードが正しくありません。

  • ASPのログイン制限に関する質問です

    現在ログイン制限のページを作成しているのですがユーザーIDとパスワードを入力した情報を現在作成している関数に渡すとエラーがおきてしまいます。原因がわからないので助言をお願いします。 SQLの定義ですがすべてvarcharです。 以下コード ---------------------------------------------------------- 'ログイン画面からのデータを取得 user_id = Request.form("user_id") password = Request.form("password") function user_check(user_id, password) set objCon = Server.CreateObject("ADODB.Connection") set objRS = Server.CreateObject("ADODB.Recordset") objCon.ConnectionString = "DSN=・・・・;"& _ "UID=root;" & _ "PWD=・・・・・;" objCon.Open '入力した情報と一致するものを探す strSQL = "select person_code, password from person_master" & _ "where code = '" &user_id& "' and password = '" &password& "'" objRS.Open strSQL, objCon, 3 If objRS.EOF or objRS.BOF then user_check = "NG" else user_check = "OK" end If objRS.close set objRS = nothing objRS.close set objCon = nothing end function if user_check(user_id, password) <> "OK" then response.redirect "index.asp" else response.redirect "main.asp" end if

  • SQLサーバーへの接続が どうしてもウマくいきません

    SQLサーバーを始めたばかり です。 ASPで SQLサーバーのデータを表示しようとしています。 環境: WinXP (Pro)     IIS設定済み     SQL Server 2005 Express Edition 近くに2003サーバーがあるので 最終的にはそちらで動作させる予定です。 サーバーが現用機なので 自PCで動作確認してからと思っています。 色々ネットを調べて まず接続しようとしましたが そこでつまづいています。 この方法以外も沢山試しましたが全てうまく行きません。 2005 ExpressでDBとテスト用のテーブルが作成してあります。 そのデータを読み出せれば 第一段階とトライしますが、 IEから接続にいくと「objCon.Open」がエラーになってしまいます。 ASPファイルの内容は 以下です なお DB名は 「PC名¥SQLEXPRESS」といれています よろしく お願いします ---------------------------------------------------- <%@ LANGUAGE="VBScript" %> <% option explicit %> <% Dim objCon ' DB接続コネクション Dim objRS ' DB結果レコードセット Dim sql ' SQL文 Dim errflg ' エラーフラグ 'DataSource名 Const DS = "111.111.0.1" ←IPアドレス。正しいものをいれてます Const IC = "DB名"      'ユーザ名 Const User = "sa" 'パスワード Const Pwd = "sa" Set objCon = Server.CreateObject("ADODB.Connection") Set objRS = Server.CreateObject("ADODB.Recordset") objCon.ConnectionString = "Provider=SQLOLEDB;" & _ "User ID=" & User & ";" & _ "Password=" & Pwd & ";" & _ "Data Source=" & DS & ";" & _ "Initial Catalog=" & IC objCon.Open sql = "select * from Aテーブル" objRS.Open sql,objCon,adOpenStatic,adLockReadOnly %> レコード件数 <%=objRS.RecordCount%> <% ' DBclose objCon.Close() Set objCon = Nothing objRS.Close() Set objRS = Nothing %>

  • ASP+アクセスでのSQLコメントについて

    SQL文にコメントを入れたいのですが、下記エラーになります。下記コードでSQL文にコメント入れる方法を教えてください。 Microsoft JET Database Engine (0x80040E14) SQL ステートメントの後に文字が見つかりました。 SELECT * FROM sqltable where idnum like 'hoge';-- SELECT * FROM sqltable where idnum like 'hoge'--; を試して両方同じエラーでした。 Dim objCon Set objCon = Server.CreateObject("ADODB.Connection") objCon.Mode=1 objCon.ConnectionString = Server.MapPath("db1.mdb") objCon.Provider = "Microsoft.Jet.OLEDB.4.0" objCon.Open strSQL = "SELECT * FROM sqltable where idnum like 'hoge';--" SET result = objCon.Execute(strSQL) objCon.Close Set objCon = Nothing 環境は以下のようになります。 WinXP+IIS5+Access2003

  • Windows認証でDBにアクセスできない

    以下の構成のマシン一台で行っています。 WindowsXp Pro SP3 IIS5.1(OS添付のIIS) VS2010 SQL Server2008 R2 Express すべて最新にアップデート済みです。」 この状態で以下のASPプログラムの objCon.Open(Session("DBName00")) の部分で Microsoft OLE DB Provider for SQL Server: このログインで要求されたデータベース "TTTT" を開けません。 ログインに失敗しました。 というエラーになります。 ASPソースは以下の通りです。 <%@ TRANSACTION=Required Language=VBScript %> <%Response.Buffer = TRUE %> <% Session("DBName00") = "Provider=SQLOLEDB;" & _ "Data Source=XXXXX\SQLEXPRESS;" & _ "Initial Catalog=TTTT;" & _ "Trusted_Connection=yes;" & _ "Integrated Security=SSPI" Set objCon = Server.CreateObject("ADODB.Connection") Set objRs = Server.CreateObject("ADODB.Recordset") objCon.Open(Session("DBName00")) objRS.Open strSQL, objCon, 3 objRS.Close Set objRS = Nothing objCon.Close %> SQL Server2008 R2 のインストールは混合モード認証で作成してあります。 また「XXXXX\SQLEXPRESS」は SQLServer Management Studio でログインするときのサーバー名です。 Windows認証で接続したいと思っているのですがなぜかうまくいきません。 何が悪いのか判らず困っています。すみませんがよろしくお願いします。

  • mdbを直接開いてもasp側に影響を与えない方法について

    お世話になります。当方、Windows Server 2003 R2 SP1 で IIS6.0 を使用しています。 サーバ側に設置しているmdbファイルをODBCでシステムDSNに登録し、ASPから 接続しております。 メンテナンスなどで直接mdbファイルを開いている時に、ASPのページに アクセスすると以下のエラーメッセージが出て正常表示が出来なくなります。 ======================================================== HTTP 500.100 - 内部サーバー エラー - ASP エラー インターネット インフォメーション サービス -------------------------------------------------------- エラー タイプ Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][ODBC Microsoft Access Driver] '(不明)' は既に使用されているので、使用できませんでした。 ======================================================== mdbファイルを直接開いても、ASP側でもエラー表示されないように するにはどうしたらよいでしょうか? ソースは以下のようにしております。 Set cnn=Server.CreateObject("ADODB.Connection") cnn.open "dummy" cnn.close cnn.open "testdb"  '// ODBCをtestdbにしています。 SQL = "SELECT * FROM M_USER ORDER BY USERID" Set rs1 = cnn.Execute(SQL) よろしくお願いいたします。

このQ&Aのポイント
  • プリンターエラーコード0x9Aが発生し、EPSON社製品の印刷ができなくなりました。解除する方法をご紹介します。
  • EPSON社製品のプリンターエラーコード0x9Aが表示され、印刷ができません。解除する方法について詳しく解説します。
  • プリンターエラーコード0x9Aが表示され、EPSON社製品の印刷機能が使用できなくなりました。解除する方法についてご紹介します。
回答を見る

専門家に質問してみよう