人が作ったシステムを古いサーバーから別のサーバーに移行する作業をしています。
test.mdbファイルからSQL文を使って必要な情報を表示するコードです。
問題のエラー文 ADODB.Recordset エラー '800a0cb3' 現在の Recordset はブックマークをサポートしてません。プロバイダーか、選択されたカーソルタイプの限界の可能性があります。 test.asp, 行 51
エラーの出た部分
rs.AbsolutePosition=cnt
ここからどのように修正したらいいか分からず、困っています。
記述以外に必要な情報があれば追記します。よろしくお願いします。
追記情報.
新サーバーにAccessは入っていません。
旧サーバーのAccessはMicrosoft(R) Access 97です。
以下このエラーになるまでに試したことを記載します。
ADODB.Connection エラー '800a0e7a' プロバイダーが見つかりません。正しくインストールされていない可能性があります。 test.asp, 行 49
エラーの出た部分
db.Open
対処したこと
db.Provider="Microsoft.Jet.OLEDB.4.0"
から
db.Provider="Microsoft.ACE.OLEDB.12.0"
に変更しました。
Microsoft Access Database Engine エラー '80040e37' 入力テーブルまたはクエリ '×××××' が見つかりませんでした。そのテーブルやクエリが存在していること、または名前が正しいことを確認してください。 test.asp, 行 50
エラーの出た部分
rs.Open "SELECT * FROM ××××× WHERE parent=0 ORDER BY sdat DESC",db,3,2
対処したこと
test.mdbファイルの保存形式を
Access97形式から
Access2003形式に保存して置き換えました。
以上を行い、問題のエラー文になりました。
追記.コード全体
ASP
<%@Language="VBScript" %> <html> <head> </head> <body bgcolor="ffffff"> <BR><center> <BR> <P align="center"> <FONT size="+1" face="MS ゴシック" color="#666666"><B>「全体について」投稿ページ</B></FONT> </P> <table width="95%" cellspacing="10"> <% Sub disp(ByVal rss) Do While Not rss.EOF Response.Write "<tr><td bgcolor='#FFF7F7'>" Response.Write "<div style='text-indent:" & rss("level")*20 & "px'>" If rss("title")="削除済" Then Response.Write rss("id") & ":<span style='color:#FF99AA'>削除済</span> " Response.Write "(" & FormatDateTime(rss("sdat"),0) & ") " Else Response.Write " ┗ "&rss("id") & ":<a href='q&a_003.asp?id=" & rss("id") & "'>" Response.Write rss("title") & "</a> " Response.Write rss("nam") & "(" & FormatDateTime(rss("sdat"),0) & ") " If rss("flg") < 4 then Response.Write " <img src='イラスト.gif'> " End If End If Response.Write "</div></td></tr>" SQL_S="SELECT * FROM Q-表示 Where parent=" & rss("id") & " ORDER BY sdat ASC" Set rs_s=db.Execute(SQL_S) If rs_s.EOF=False Then Call disp(rs_s) rss.MoveNext Loop End Sub If Request.QueryString("cnt")="" Then cnt=1 page=1 Else cnt=CInt(Request.QueryString("cnt")) tmpCnt=cnt-15 page=CInt(Request.QueryString("page")) End If Set db=Server.CreateObject("ADODB.Connection") Set rs=Server.CreateObject("ADODB.Recordset") db.Provider="Microsoft.ACE.OLEDB.12.0" db.Mode=3 db.ConnectionString=Server.MapPath("master.mdb") db.Open rs.Open "SELECT * FROM Q-表示 WHERE parent=0 ORDER BY sdat DESC",db,3,2 rs.AbsolutePosition=cnt 'エラーの出た部分 Do While Not rs.EOF Response.Write "<tr><td bgcolor='#F5FFFF'>" If rs("title")="削除済" Then Response.Write rs("id") & ":<span style='color:#FF99AA'>削除済</span> " Response.Write "(" & FormatDateTime(rs("sdat"),0) & ") " Else Response.Write rs("id") & ":<a href='q&a_003.asp?id=" & rs("id") & "'>" Response.Write rs("title") & "</a> " Response.Write rs("nam") & "(" & FormatDateTime(rs("sdat"),0) & ") " If rs("flg") < 4 then Response.Write " <img src='イラスト.gif'> " End If End If Response.Write "</td></tr>" SQL1="SELECT * FROM Q-表示 Where parent=" & rs("id") & " ORDER BY sdat ASC" Set rs1=db.Execute(SQL1) If rs1.EOF=False Then Call disp(rs1) rs.MoveNext cnt=cnt+1 If cnt=page*15+1 Then Exit Do Loop Response.Write "</table>" Response.Write "<div align='center'>" If page>1 Then Response.Write "<a href='q&a_001.asp?cnt=" & tmpCnt & "&page=" & page-1 Response.Write "'><img src='next.gif' alt='前ページへ' border='0' /></a> " End If Response.Write " <a href='q&a_002.asp'><img src='note.gif' width='40' height='40'" Response.Write " alt='新規作成' border='0'/></a> " If Not rs.EOF Then Response.Write " <a href='q&a_001.asp?cnt=" & cnt & "&page=" & page+1 Response.Write "'><img src='prev.gif' alt='次ページへ' border='0' /></a>" End If Response.Write "</div>" %> <BR> <BR> </body> </html>
まだ回答がついていません
会員登録して回答してみよう