- ベストアンサー
データ一覧から更新と削除を編集したいがうまくいかない
- データの一覧から更新や削除の編集作業を行いたいが、うまくいかない。詳細な情報に基づいて修正点を教えてほしい。
- データの一覧は正常に表示され、登録もできる。しかし、リンクをクリックして情報を編集しようとすると値が取得できない。
- データ一覧から更新リンクをクリックするとデータが表示されず、エラーも出ない。初心者なので理解が浅いため、具体的な解決方法が知りたい。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ここで書くときに転記ミスだと思うのですが。 > strSQL = "select * From テーブル名 Where ID=ID " ここは "select * From テーブル名 Where ID=" & ID じゃないといけないですよね。 それはおいといて、パッと見た感じ、問題はなさそうですね。 で、切り分けとして、ID=1のデータがあるとして * ~/test.asp?ID=1 が正しく表示されるか。 * 表示されない場合、「 レコードオープン」以下をデータ一覧のものに入れ替えて ~/test.asp?ID=1 が正しく表示されるか。 あとは、response.writeなどで、パラメータやSQLが正しく受け取り・作成されているか等を確認するとかですかね。
その他の回答 (1)
- khazad-lefty
- ベストアンサー率44% (296/668)
'##### データ参照 ##### strSQL = "select * From SITE_DATA where 【 ID=1 ここです】" ID【 <%=objRS("ID")%> 】 NAME【 <%=objRS("NAME")%> 】 URL【 <%=objRS("URL")%> 】 --------------- ↑objRSをどう取得しているかがこれだと良くわかりません。 その部分のソースはどうなっているのでしょうか?
補足
すみません。データ一覧のソースです <%@ LANGUAGE="VBScript" %> <% Option Explicit%> <html> <body> <% Dim objCon Dim objRS Dim strSQL '##### コネクションオブジェクトの生成 ##### Set objCon = Server.CreateObject("ADODB.Connection") '##### レコードセットオブジェクトの生成 ##### Set objRS = Server.CreateObject("ADODB.Recordset") '##### 接続用パレメータの設定 ##### objCon.Provider = "Microsoft.Jet.OLEDB.4.0" '##### MDBの絶対パス指定 ##### objCon.ConnectionString = (Server.MapPath("/") & "TEST.mdb") '##### コネクションのオープン ##### objCon.Open '##### データ参照 ##### strSQL = "select * from テーブル名" '##### レコードオープン ##### objRS.Open strSQL, objCon, 3, 3 %> レコード件数 <%=objRS.RecordCount%> <hr> <table border="1"> <% '##### EOF が True になるまで繰り返し ##### Do Until objRS.EOF %> <tr> <td><%=objRS("ID")%></td> <td><%=objRS("NAME")%></td> <td><%=objRS("URL")%></td> <td><%=objRS("CM1")%></td> <td><%=objRS("CM2")%></td> <td><%=objRS("CM3")%></td> <td><a href="TEST1.asp?ID=<%=objRS("ID")%>">更新</a></td> <td> <a href="TEST2.asp?ID=<%=objRS("ID")%>">削除</a></td> </tr> <% '##### 次のレコードを参照 ##### objRS.MoveNext Loop %> </table> <table border="1"> <tr> <td><a href="/sample3.asp">追加</a></td> </tr> </table> <% '##### レコードセットのクローズ ##### objRS.Close Set objRS = Nothing '##### コネクションのクローズ ##### objCon.Close Set objCon = Nothing %> </body> </html> 受け取り?更新フォームのソースです。 <%@ LANGUAGE="VBScript" %> <% Option Explicit%> <% Dim ID,NAME,URL,CM1,CM2,CM3 ID = Request.QueryString("ID") Dim objCon Dim objRS Dim strSQL '##### コネクションオブジェクトの生成 ##### Set objCon = Server.CreateObject("ADODB.Connection") '##### MDBの絶対パス指定 ##### objCon.ConnectionString = (Server.MapPath("/") & "/TEST.mdb") '##### レコードセットオブジェクトの生成 ##### Set objRS = Server.CreateObject("ADODB.Recordset") '##### 接続用パレメータの設定 ##### objCon.Provider = "Microsoft.Jet.OLEDB.4.0" '##### コネクションのオープン ##### objCon.Open '##### SQLの作成 ##### strSQL = "select * From テーブル名 Where ID=ID " '##### SQL の実行 ##### objCon.Execute strSQL '##### レコードオープン ##### objRS.Open strSQL, objCon, 3,3 %> <html> <body> <hr> ID【 <%=ID%> 】<br> NAME【 <%=NAME%> 】<br> URL【 <%=objRS("URL")%> 】<br> CM1【 <%=objRS("CM1")%> 】<br> CM2【 <%=objRS("CM2")%> 】<br> CM3【 <%=objRS("CM3")%> 】<br> を削除致しました。 <hr> <FORM ACTION="/ファイル名.asp" METHOD="POST" id=form1 name=form1> <TABLE WIDTH=600 BORDER=1> <TR> <TD width="100">ID</TD> <TD><%=objRS("ID")%></TD> </TR> <TR> <TD width="100">サイト名</TD> <TD><INPUT TYPE="text" NAME="NAME" VALUE="<%=objRS("NAME")%>"></TD> </TR> <TR> <TD>URL</TD> <TD><INPUT TYPE="text" NAME="URL" VALUE="<%=objRS("URL")%>"></TD> </TR> <TR> <TD>CM1</TD> <TD><INPUT TYPE="text" NAME="CM1" VALUE="<%=objRS("CM1")%>"></TD> </TR> <TR> <TD>CM2</TD> <TD><INPUT TYPE="text" NAME="CM2" VALUE="<%=objRS("CM2")%>"></TD> </TR> <TR> <TD>担当</TD> <TD><INPUT TYPE="text" NAME="CM3" VALUE="<%=objRS("CM3")%>"></TD> </TR> <TR> <TD align="center" colspan="2"> <INPUT TYPE="submit" NAME="CB" VALUE="更新"> <INPUT TYPE="reset" VALUE="リセット" id=reset1 name=reset1> </tD> </TR> </TABLE> </FORM> <hr> <a href="ファイル名.asp">新規登録に戻る</a><br> <a href="ファイル名.asp">登録一覧に戻る</a> <% '##### レコードセットのクローズ ##### objRS.Close Set objRS = Nothing '##### コネクションのクローズ ##### objCon.Close Set objCon = Nothing %> </body> </html> 宜しくお願いします。
お礼
遅くなりましたが、回答頂き、有り難う御座います。 おしゃるとおり、 "select * From テーブル名 Where ID=" & ID でうまくいきました。 よく理解ができていなかった為におこったミスでした。 しかし、今回のことで、理解が深まりました。 有り難う御座います。