出来るのだASP Q&A掲示板(過去LOG)  訪問数 52046 昨日 889 今日 776
    【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。
Topに戻る 掲示板に戻る 検索 削除 管理者

[3758] Re:AddNewでレコードの追加される列について
投稿者:ちびたさん 2003/10/24 9:50:35
少し時間が空いてしまいまして申し訳ございませんでした。
ソースを公開します。

PetAdd.aspで
<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "PetDB"
sql = "select * from M_Pet where PetCD ='"& o_PetCD &"' AND PetClass = '0'"

Set rs = objConn.Execute(sql)
reccount = 0
do while not rs.eof
%>
<INPUT SIZE=4 name ="h_cd<%=reccount%>" Value="<%=rs.Fields("PetCD")%>"></INPUT>:
<INPUT SIZE=10 name ="h_name<%=reccount%>" Value="<%=rs.Fields("PetNM")%>"></INPUT><BR>
<%
reccount = reccount + 1
rs.MoveNext
    loop
%>
<INPUT SIZE=4 name ="h_cd<%=reccount%>" Value=""></INPUT>:
<INPUT SIZE=10 name ="h_name<%=reccount%>" Value=""></INPUT>
<%
Set rs = nothing
%>

です。
以上のActionで最後のinputboxに入力された内容が追加登録され、もう一度PetAdd.aspへリダイレクトします。
すると、読み込んだレコードの一番最後は追加したものがであると思われるのですが、一番最最後のinputboxに表示されているのは先頭に表示されていたデータで、追加したものは最後から2番目に表示されています。

更新処理は、一度テーブルのデータを全て削除してkousin.aspで
s_Pet = Request("PetCD")
j_class = Request("Sel_Class")

Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "M_Pet","DSN=PetDB",adOpenKeyset,adLockOptimistic

For i = 0 To reccount - 1
 s_cd = Request("h_cd"&i)
 s_name = Request("h_name"&i)
 If s_cd<>"" Then
  rs.AddNew
  rs("PetCD").Value = s_Pet
  rs("PetNM").Value = s_name
  rs("PetClass").Value =j_class
  rs("UpdateDT").Value =Date
  rs.Update
 End if
Next
objConn.close

です。
AccessのDBを開いてみても追加したデータが一番下のレコードにあるのですが、リダイレクトの表示で後ろから2番目になるのはなぜなのでしょうか。
どなたか教えていただけませんでしょうか。
よろしくお願いいたします。

AddNewでレコードの追加される列について   ちびたさん [2003/10/14 15:20:39] [3731]
  Re:AddNewでレコードの追加される列について   YasNet(管理人)さん [2003/10/16 9:06:40] [3736]
    Re:AddNewでレコードの追加される列について   ちびたさん [2003/10/24 9:50:35] [3758]


TreeBBS For ASP V.0.1.3
Program By YasNet