プロが教える店舗&オフィスのセキュリティ対策術

行き詰ってます!ご教授下さい。

データの一覧から【更新】【削除】編集作業を行いたいのですが、うまくいきません。
ソースを記載しますので、修正点をお教え下さい。

データの一覧はうまくいっております。登録も出来ております。
'##### データ参照 #####
strSQL = "select * from テーブル名"

Request.QueryString("ID")にてリンクをかけてその情報を編集したいのですが、値が取得できません。
<a href="test.asp?ID=<%=("データベースオートナンバー")%>">更新</a>


編集側で以下、条件抽出を出すと ID 1 のデータが表示されるのですが、
'##### データ参照 #####
strSQL = "select * From SITE_DATA where 【 ID=1 ここです】"
ID【 <%=objRS("ID")%> 】
NAME【 <%=objRS("NAME")%> 】
URL【 <%=objRS("URL")%> 】

私が行いたいのは、データ一覧から更新リンクをクリックすると、
そのデータを抽出し、表示、編集を行いたいと思っています。
データ1を<a href="test.asp?ID=ナンバー...【更新】</a>
データ2を<a href="test.asp?ID=ナンバー...【更新】</a>
データ3を<a href="test.asp?ID=ナンバー...【更新】</a>

エラーなどは出ないのですが、まったく表示されず、まいっています。
参考書などをみているのですが、いまいち理解ができません。

※初心者ですので、理解が浅すぎる事は分かっています。どうか宜しくお願いします。
説明がうまく伝わればよいですが、、、

A 回答 (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が正しく受け取り・作成されているか等を確認するとかですかね。
    • good
    • 0
この回答へのお礼

遅くなりましたが、回答頂き、有り難う御座います。

おしゃるとおり、
"select * From テーブル名 Where ID=" & ID
でうまくいきました。

よく理解ができていなかった為におこったミスでした。
しかし、今回のことで、理解が深まりました。
有り難う御座います。

お礼日時:2009/06/11 17:58

'##### データ参照 #####


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>

宜しくお願いします。

補足日時:2009/06/05 18:07
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!