主题:  大家帮我看看错在哪里?

hxjy

职务:普通成员
等级:1
金币:0.0
发贴:4
#12003/3/5 10:18:11
大家帮我看看错在哪里?红色的部分是一个表格,我现在想随着typeid=?的不同而循环生成好几个类似的表格,能不能只写一次表格的代码,其它的由循环方式产生,怎么改?

由于在链接中无法传递参数,typeid="& typeid &"的方式可能不能用。

我把包含错误的整个程序都放在了网上,请高手帮我调试一下,出错的网页为根目录下的addpoint.asp,程序运行点首页右上角的“统计积分”即进入addpoint.asp。

下载地址为: www.52mk.com/a.exe
谢谢!

<%

Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("data/dl19770422news30000.asa")

set rs=server.createobject("adodb.recordset")
sql="select smallclassid ,count(*) ,SUM(addpoint) from News where typeid="& typeid &" group by smallclassid,typeid order by typeid asc"
rs.open sql,conn,1,1
while not rs.eof

if not rs.eof then
i=1
%>

bordercolorlight="#000000" align="center">











<%
do while not rs.eof
set rs1=server.createobject("adodb.recordset")
sql1="select smallclasszs from smallclass where smallclassid="& rs(0)
rs1.open sql1,conn,1,1
%>








<%
rs1.close
set rs1=nothing
rs.movenext
i=i+1
loop
else
%>
暂时没有数据
<%
end if
rs.close
set rs=nothing

%>
对内报道自动统计积分程序生成表
序号 报道性质 报道篇数 基础得分 录用加分 对内积分

<%=i%>

<%=rs1(0)%>对内报道

<%=rs(1)%>
<%
a=rs(1)
if (a*0.1) < 1 then
response.write formatnumber(a*0.1,0,-1)
else
response.write ""
end if
%><%=rs(1)*0.1%>
<%=rs(2)%>
<%
a=rs(1)
b=rs(2)
if (a*0.1+b) < 1 then
response.write formatnumber(a*0.1+b,0,-1)
else
response.write ""
end if
%><%=rs(1)*0.1+rs(2)%>

<%
rs.MoveNext
wend

conn.close
set conn=nothing
%>



casherboy

职务:普通成员
等级:1
金币:0.0
发贴:8
#22003/3/5 10:40:58
我都系无能为力了,唉!帮不了你了



makdh

职务:普通成员
等级:1
金币:0.0
发贴:28
#32003/3/7 6:12:09
每个TypeID单个表格?你的变通一下就是了
为什么都喜欢把rs.open写在循环里???

大概意思如下,基本每一句都注释了,你的表格布局自己套吧

Dim i, j
Dim intRsCount1, intRsCount2 '表1和表2列数
Dim StrTemp 'GROUP字段的TMP变量

'表一的strGroup作为类别名(TypeID)
'表二的strGroup2对应表一
rs1.Open "Select strGroup From dbo.table1", conn, 1, 3
rs2.Open "Select TypeID2, strName, strPrice, strGroup2 From dbo.table2", conn, 1, 3

  intRsCount1 = rs1.RecordCount 
  intRsCount2 = rs2.RecordCount
  '
  StrTemp = rs1("strGroup") '将表一GROUP字段赋值TMP变量

' ---=== 下面开始循环输出 ===---

  For i = 0 To intRsCount1 - 1 '循环数据库的表一
  If rs1.Eof Then Exit For
 
    Response.Write "" &_
      ""
 
    For j = 0 To intRsCount2 - 1 '循环表二
    If rs2.Eof Then Exit For
 
      '历遍表二后指针重新移动到第一条
      If j = intRsCount2 - 1 Then rs2.MoveFirst
      If rs2.Eof Then Exit For
 
      '如果表二的GROUP等于表一GROUP则输出
      If StrTemp  = rs2("strGroup2") Then  Response.Write ""
 
      '下一条
      rs2.MoveNext
 
    Next
 
  rs1.MoveNext
  StrTemp  = rs1("Group") 'TMP变量更新
  Response.Write "
" & rs1("Group") & "
ID产品名称价格
" & rs2("TypeID") & "" & rs2("strName") & "" & rs2("strPrice") & "
" Next rs1.Close rs2.Close 大概意思这样了,可能有写得混淆的地方,不检查了,你自己测试吧

编辑历史:[这消息被makdh编辑过(编辑时间2003-03-07 06:13:24)]
[这消息被makdh编辑过(编辑时间2003-03-07 06:18:45)]