• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ASPでRecordCountが使用できない)

ASPのRecordCountが使用できない

hequilの回答

  • ベストアンサー
  • hequil
  • ベストアンサー率65% (242/372)
回答No.1

ヒントだけ RecordCountプロパティはSupportsメソッドのadApproxPositionとadBookmarkが TrueだとRecordCountプロパティがサポートされます。 で、これらをサポートしているのがRecordsetオブジェクトのCursorTypeが「adOpenKeyset」または「adOpenStatic」を指定した時のみとなります。 上記ソースではCursorTypeが指定されていないため カーソルタイプを指定していない状態(adOpenUnspecified)となり、RecordCountプロパティの結果が -1となっています。 なんか小難しい説明になりましたが、実際にMSDN等を参考に試行錯誤してみると、わかっていただけると思います。 参考になれば

ShiroNeko
質問者

お礼

早速の回答 ありがとう、ございます。 参考に試してみます。

関連するQ&A

  • ASPでRecordCountが使用できない(2)

    前回、指示をされた内容ででテストを試みましたがやはり、結果は-1 Set db1=Server.CreateObject("ADODB.Connection") db1.Provider="Microsoft.Jet.OLEDB.4.0" db1.ConnectionString=Server.MapPath("../master.mdb") db1.Mode=1 db1.Open ' Set rs1=Server.CreateObject("ADODB.Recordset") Rs1.Pagesize = 5 ' keyword = "ABC" ' SQL1a = "SELECT top 5 * FROM dbFILE WHERE dbTABEL Like '%" & Keyword & "%'" Set Rs1=db1.Execute(SQL1a) Rs1.CursorType = adOpenKeySet intP = Rs1.RecordCount Response.Write "RecordCount = " & intp & "<BR>" MSDNの説明でRecordCountなど参照しましたが理解不足でしょうか ? 宜しく、お願いします。

  • DBの更新??

    ソースは下記です。 Set db=Server.CreateObject("ADODB.Connection") db.Provider="Microsoft.Jet.OLEDB.4.0" db.Mode=2 db.ConnectionString=Server.MapPath("../../script/db_dat/crv_haken.mdb") db.Open Set rs=db.Execute("select * from control " ) rs("day-upd") = Request.Form("編集担当") rs("tanto-upd") = date rs.update rs.Close db.Close Set db=Nothing で・・・実行しますと エラー タイプ ADODB.Recordset (0x800A0CB3) 現在の Recordset は更新をサポートしていません。プロバイダか、選択されたロックタイプの限界の可能性があります。 のメッセージがでます。 何が原因でしょうか?お教えください。

  • ASPでのSQLインジェクション対策

    ASPにて、ADOでAccessにアクセスする際にSQLインジェクション対策はどのようにしたらよいでしょうか。 現状は以下の様にしています。(name)は画面から受け取ったパラメータです。 Set aConn = CreateObject("ADODB.Connection") aConn.Provider = "Microsoft.Jet.OLEDB.4.0" aConn.ConnectionString = Server.MapPath("DB.mdb") aConn.open SQL = "SELECT A FROM TBL WHERE NAME = " & name ...... 宜しくお願いします

  • ソートの設定

    ASPでアクセス97を使って品番、納期という順番に表示させたいのですが うまくいきません。 SQL文を使って品番順にはならんだのですが、納期がばらばらになってしまいます。どうしたら品番、納期順という並びになるか教えて下さい。 Dim Conn,SQL,RS xxxx=server.mappath("*****.mdb") DBName="Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & xxxx Set Conn = Server.CreateObject("ADODB.Connection") Conn.open DBName SQL = "select * from ******" SQL = SQL & " order by 品番 asc" set RS = Server.CreateObject("ADODB.Recordset") RS.Open SQL, Conn,3,3

  • 同じコードを何回も繰り返しているので、簡潔にしたい

    「1.htm」のフォームで入力された値を、 「2.asp」で出力するASPを作成しました。 以下のようなコードになってしまいました。 動作はするのですが、 もう少し簡潔にならないかと考えています。 どうかご教授ください。 宜しくお願いします。 ****1.htm*** <input name="test1" type="text"> <INPUT type="radio" name="test1_1" value="y">あり  <INPUT type="radio" name="test1_1" value="n">なし <input name="test2" type="text"> <INPUT type="radio" name="test2_2" value="y">あり  <INPUT type="radio" name="test2_2" value="n">なし … <input name="test5" type="text"> <INPUT type="radio" name="test5_5" value="y">あり  <INPUT type="radio" name="test5_5" value="n">なし ***2.asp***** test1で値が入力されていたらその値をもとにクエリを組んで、 結果を出力しています。 If Not test1 = "" Then Set db=Server.CreateObject("ADODB.Connection") db.Provider = "Microsoft.Jet.OLEDB.4.0" db.ConnectionString = Server.MapPath("test.mdb") db.open Set rs = db.Execute("SELECT * FROM テーブル1 WHERE ((テーブル2.番号)='" & test1 & "')") ObjTS.WriteLine " & rs.Fields.Item("名前") & " If test1_1 = "y" then ObjTS.WriteLine "メッセージ" End If rs.Close db.Close Set db = Nothing End If If Not test2 = "" Then Set db=Server.CreateObject("ADODB.Connection") db.Provider = "Microsoft.Jet.OLEDB.4.0" db.ConnectionString = Server.MapPath("test.mdb") db.open Set rs = db.Execute("SELECT * FROM テーブル1 WHERE ((テーブル2.番号)='" & test2 & "')") ObjTS.WriteLine " & rs.Fields.Item("名前") & " If test2_2 = "y" then ObjTS.WriteLine "メッセージ" End If rs.Close db.Close Set db = Nothing End If …… If Not test5 = "" Then Set db=Server.CreateObject("ADODB.Connection") db.Provider = "Microsoft.Jet.OLEDB.4.0" db.ConnectionString = Server.MapPath("test.mdb") db.open Set rs = db.Execute("SELECT * FROM テーブル1 WHERE ((テーブル2.番号)='" & test5 & "')") ObjTS.WriteLine " & rs.Fields.Item("名前") & " If test5_5 = "y" then ObjTS.WriteLine "メッセージ" End If rs.Close db.Close Set db = Nothing End If

  • 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

  • VB6とSQL SERVER 2005のADO接続方法

    VB6とSQL SERVER 2005(Developer Edition)のADO接続方法がわかりません。 今までSQLSERVER2000で開発していたのですが、DBをSQLSERVER2005に 変更したところ接続できませんでした。 以下はSQLSERVER2000時のソースなのですが、 2005の場合ConnectionStringはどうやればいいのでしょうか? --------------------------------------- Dim rs As ADODB.Recordset Dim cn As ADODB.Connection Set rs = New ADODB.Recordset Set cn = New ADODB.Connection cn.ConnectionString = "Provider=SQLOLEDB.1;" & _ "User ID=" & strUsr & ";" & _ "Data Source=" & strSvr & ";" & _ "Password=" & strPass cn.CursorLocation = adUseClient cn.Open --------------------------------------- 初歩的な質問で申し訳ありませんがどなたかお助けください。

  • お世話になっております。

    お世話になっております。 現在PowerPoint2007のVBAの勉強をしております。 DBにACCESS2007を使用しております。 Private Sub TextBox1_Change() Dim con As New ADODB.Connection Dim rs As New ADODB.Recordset Dim connectionString As String '接続文字列の設定------------------------------------------------------ connectionString = "provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=C:\Documents and Settings\デスクトップ\table.mdb" con.connectionString = connectionString '接続 con.Open 'SQL文を実行(RecordSETで受け取ります)-------------------------------- Set rs = con.Execute("SELECT * FROM table2") TextBox1.Text = ????? '接続を閉じる---------------------------------------------------------- con.Close Exit Sub End Sub こちらがVBAのコードです。 TextBox1.Text = ????? の部分にSQLで実行した 結果を入れたいのですがどのようにすればいいのか わかりません。 解る方、参考になるHP等ありましたら教えていただければ 幸いです。 何卒よろしくお願いします。

  • VBSの中で書くSQL文の記述方法

    よろしくお願いします。 select * from db1 into id,password,date,name where db1_id = **** and db1_password = **** and db1_date = 99999999; (db1_id,db1_password,db1_dateがプライマリキー) db1という表からプライマリキーに該当したデータを取り出し、 変数に格納したいと思っています。 このSQL文をASPのVBSの中で実現する方法を教えてください。 <% Dim Conn,SQL,RS Dim id Dim password Dim date Dim name db1=server.mappath("db1.mdb") DBName="Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & db1 Set Conn = Server.CreateObject("ADODB.Connection") Conn.open DBName SQL = "select * from db1" INTO = "into id,password,date,name" WHERE = "where db1_id = **** and db1_password = **** _ and db1_date = 99999999" SQL = SQL & INTO & WHERE & ";" Set RS = Server.CreateObject("ADODB.Recordset") RS.Open SQL, Conn,3,3 %> これでうまくいくかな~と思ったのですが・・・。

  • ASP でオートナンバー型の数値を拾いたい

    休日なのに悲しくなるほど、以下の問題でハマってます。 どうかよろしくお願いします。 以下は、『 今日からつかえる ActiveServerPages2.0 - 実用サンプル集 ~ 等 』を参考にしたDBオープンの 下準備です。 ------------------------------------------------- Set db=Server.CreateObject("ADODB.Connection") db.Open "test" SQL="SELECT * FROM Master WHERE((Master.SerialNo)='" &_ Request.QueryString("SerialNo") & "')" Set RS=db.Execute(SQL) ------------------------------------------------- ・・・とよくありそうな ODBC による Access の mdb ファイルの検索をやろうとしているのですが、以上の スクリプトだと、どうしてもオートナンバー型の数値の列 を検索してくれません。(一番最後の Set RS=db.Execte(SQL) でエラー発生 ) テキスト型ならどの列でも大丈夫です。 これについて何かよい解決法はありませんでしょうか。 昨夜から延々泊り込みで頭抱えている次第です。