asp+access高难度问题,估计只有高手才能解决

okloo 2006-02-28 11:15:18
mz_student表中有一个字段st_id为主键自动编号;
目的:本菜鸟想在mz_student中addnew一条新记录,然后立刻select调用这条新增记录的st_id值
源码:如下
<!--处理学员表mz_student-->
sqlst="select * from mz_student"
set rsst=server.createobject("adodb.recordset")
rsst.open sqlst,conn,1,3
rsst.addnew
rsst("class_id")=classid
rsst("st_code")=stcode(stcode和下面的stcode值一样,没问题)
rsst("st_name")=stname
rsst("st_sex")=stsex
rsst("st_birth")=stbirth
rsst("st_idnumber")=stidnumber
rsst("st_mobile")=stmobile
rsst("st_tel")=sttel
rsst("st_regdate")=date()
rsst("st_address")=staddress
rsst("st_type")=sttype
rsst.update
rsst.close
set rsst=nothing
<!--获取stid值-->
sqlid="select st_id from mz_student where st_code="&stcode(stcode值没问题)
set rsid=server.createobject("adodb.recordset")
rsid.open sqlid,conn,1,1 <-------执行到这里就死拉!!!
if not (rsid.bof and rsid.eof) then
<!--处理费用表mz_money-->
sqlm="select * from mz_money"
set rsm=server.createobject("adodb.recordset")
rsm.open sqlm,conn,1,3
rsm.addnew
rsm("st_id")=rsid("st_id") <--------得不到rsid("st_id")值
rsm("class_id")=classid
rsm("money_should")=mshould
rsm("money_haved")=mhaved
rsm("money_un")=mun
rsm("paydate")=date()
rsm.update
rsm.close
set rsm=nothing
  end if
...全文
195 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
okloo 2006-02-28
  • 打赏
  • 举报
回复
怎么加分给---lxhbysn(白衣少年) ---ksn520(泡菜.Net)---
okloo 2006-02-28
  • 打赏
  • 举报
回复
rsst("st_type")=sttype
rsst.update
  stid=rsst("st_id")<------------如果上面不行放这里来
okokokokokokok__________________>问题解决!!!!
KimSoft 2006-02-28
  • 打赏
  • 举报
回复
rsst.addnew

newid = rsst("id")
duoduobaba 2006-02-28
  • 打赏
  • 举报
回复
是的 通常放到update之后
ksn520 2006-02-28
  • 打赏
  • 举报
回复
<!--处理学员表mz_student-->
sqlst="select * from mz_student"
set rsst=server.createobject("adodb.recordset")
rsst.open sqlst,conn,1,3
rsst.addnew
   
rsst("class_id")=classid
rsst("st_code")=stcode
rsst("st_name")=stname
rsst("st_sex")=stsex
rsst("st_birth")=stbirth
rsst("st_idnumber")=stidnumber
rsst("st_mobile")=stmobile
rsst("st_tel")=sttel
rsst("st_regdate")=date()
rsst("st_address")=staddress
rsst("st_type")=sttype
rsst.update
  stid=rsst("st_id")<------------如果上面不行放这里来
rsst.close
set rsst=nothing


______________________________________________
 我最讨厌两种人:
 一是有种族歧视的;
 二是黑人;
 三是不识数的!
okloo 2006-02-28
  • 打赏
  • 举报
回复
ksn520(泡菜.Net):
stcode类型无关
okloo 2006-02-28
  • 打赏
  • 举报
回复
lxhbysn(白衣少年)----的意思是不是:如下
<!--处理学员表mz_student-->
sqlst="select * from mz_student"
set rsst=server.createobject("adodb.recordset")
rsst.open sqlst,conn,1,3
rsst.addnew
     stid=rsst("st_id")<------------就可以获取addnew后的st_id值????
rsst("class_id")=classid
rsst("st_code")=stcode
rsst("st_name")=stname
rsst("st_sex")=stsex
rsst("st_birth")=stbirth
rsst("st_idnumber")=stidnumber
rsst("st_mobile")=stmobile
rsst("st_tel")=sttel
rsst("st_regdate")=date()
rsst("st_address")=staddress
rsst("st_type")=sttype
rsst.update
rsst.close
set rsst=nothing
ksn520 2006-02-28
  • 打赏
  • 举报
回复
同意白衣

______________________________________________
 我最讨厌两种人:
 一是有种族歧视的;
 二是黑人;
 三是不识数的!
ksn520 2006-02-28
  • 打赏
  • 举报
回复
sqlid="select st_id from mz_student where st_code="&stcode(stcode值没问题)

stcode类型是???

______________________________________________
 我最讨厌两种人:
 一是有种族歧视的;
 二是黑人;
 三是不识数的!
lxhbysn 2006-02-28
  • 打赏
  • 举报
回复
st_id 为自动编号的主键的话,你用记录集rsst.addnew
后,rsst("st_id")里就有了最新的增加过的id了,不用再用sql去取值了.
直接用一个变量存储这个值就行.
okloo 2006-02-28
  • 打赏
  • 举报
回复
sqlid="select st_id from mz_student where st_code="&stcode(stcode值没问题)
你這個stcode是從哪裡來的???如果說是上面那段代碼添加的話,你應該再讀取出來才行。
rsm("st_id")=rsid("st_id") <--------得不到rsid("st_id")值
這個st_id應該是自動編號的吧???
-------------------------------------
回答:stcode是从form传过来的。mz_money表中有一个字段st_id(数字型)来自mz_student中st_id(主键,自动编号)
ybfqlyq 2006-02-28
  • 打赏
  • 举报
回复
sqlid="select st_id from mz_student where st_code="&stcode(stcode值没问题)
你這個stcode是從哪裡來的???如果說是上面那段代碼添加的話,你應該再讀取出來才行。
rsm("st_id")=rsid("st_id") <--------得不到rsid("st_id")值
這個st_id應該是自動編號的吧???

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧