asp中access学生成绩记录问题?

我有一个表main,为所有学生的姓名,结构如下:ID学号姓名10401张三20402李四30403王五40404李六然后还有一个学生成绩表chengji,结构如下:IDx... 我有一个表main,为所有学生的姓名,结构如下:
ID 学号 姓名
1 0401 张三
2 0402 李四
3 0403 王五
4 0404 李六
然后还有一个学生成绩表chengji,结构如下:
ID xingming_id 姓名 学号 日 期 成绩
1 2 李四 0402 2014/4/10 100
2 1 张三 0401 2014/4/10 95
3 3 王五 0403 2014/4/10 100
4 4 李六 0404 2014/4/10 100

我现在的想法是,每个月只需要填写不是100分的学生,然后其余所有学生默认为100分!当我这个月中第二次提交学生成绩的时候,需要与数据库中的成绩进行比较。每月每个学生只能有一次成绩。如果第二次提交的学生成绩不为100分,则需更新该月学生成绩。

我的提交的学生成绩为一个数组a,结构如下
姓名 学号 日 期 成绩
张三 0401 2014/4/10 95

我现在是这样的:
n= int((UBound(a)+1)/3)
sql="select * from chengji"
rs.open sql,conn,3,2
sql0="select * from main "
rs0.open sql0,conn,3,2
if rs0.eof or rs0.bof then
e="本系统无任何成员,请从后台添加成员"
else
do while not rs0.eof or rs0.bof
j="nofind"
rs.addnew
for m=0 to n-1
k=m*3
if rs0("xuehao")=trim(a(0+k)) then
rs("xingming_id")=trim(rs0("id"))
rs("xingming")=trim(a(1+k))
rs("xuehao")=trim(a(0+k))
rs("riqi")=CDate(trim(a(2+k)))
j="find"
exit for
end if
next
If j="nofind" Then
rs("xingming_id")=trim(rs0("id"))
rs("xingming")=trim(rs0("xingming"))
rs("xuehao")=trim(rs0("xuehao"))
rs("riqi")=CDate(dateadd("m", -1, date()))
rs("chengji")=100
End If
rs0.movenext
loop
end if
rs0.close
rs.UpdateBatch
rs.close
set rs=nothing
set rs0=nothing

无法实现我需要的第二次提交时的更新,都是新增!谢谢!
展开
 我来答
温陌觉M
推荐于2016-10-13 · TA获得超过369个赞
知道小有建树答主
回答量:251
采纳率:80%
帮助的人:139万
展开全部
rs("xingming_id")=trim(rs0("id")) 无效操作
rs("xingming")=trim(a(1+k)) 无效操作
业务逻辑能换换吗,main表固定的情况下,往成绩表填数据,不更新,取的时候去只取当月数据,还能跟踪学生成绩变化。。。。。
更多追问追答
追问
不行的,因为我还要用这个表给学生全年成绩进行平均分排序呢!如果一个月中有多个成绩,平均值就会不一样,每月只能有一个成绩!
另:rs("xingming_id")=trim(rs0("id")) 无效操作
rs("xingming")=trim(a(1+k)) 无效操作
是什么意思?我的rs打开的是成绩表,记录xingming_id是为了防止姓名重复!
追答
你代码能编辑下吗 我复制下来一坨,心一下子凉了。。。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式