您的位置:首页 > 编程语言 > VB

Microsoft VBScript 运行时错误 错误 '800a000d'

2014-12-03 21:19 513 查看
Microsoft VBScript 运行时错误 错误 '800a000d' 
类型不匹配: '[object]' 
/contact.asp,行 108

首先声明该.asp文件目的是统计问卷中各题目各选项所占百分比并用条形图显示出来 

<%

  dim label(6),avg(6),color(6)'定义分别存放选项、平均值、色号的三个数组
  label(1)="A.男"

  label(2)="B.女"

  avg(1)=0

  avg(2)=0

  color(1)="#FFFF00"

  color(2)="#FF0000"

  rs.open"select choose, count(choose) as [sum] from detail where qID='q1' group by choose"

  do while not rs.eof

    if rs("sum")=NULL then

      ave=0

    else ave=rs("sum")/counts*100

    end if
      avg(rs("choose"))=avg(rs("choose"))+ave

  rs.movenext

  loop

%>

<%for i=1 to 2 %>

    <tr>

      <td width="50"><%=label(rs("choose"))%></td>
      '该红色标记的即为行108
      <td width="250">

        <table width="<%=2.5*avg(rs("choose"))%>" height="25" bgcolor="<%=color(rs("choose"))%>">

          <tr><td> </td></tr>

        </table>

      </td>

      <td><%=Int(avg(rs("choose"))+0.5)%>%</td>

    </tr>
<% 

  next 

  rs.close   

%>

经过老师的开导,我才意识到在进入for循环前,记录指针已经指在rs.eof处,那么rs("choose")的值便不存在,自然就出现类型不匹配了。所以只要选择数组的简单输出就行了,修改如下:
   

   loop 

   rs.close 
%>

<%for i=1 to 2 %>

    <tr>

      <td width="50"><%=label(i)%></td>

      <td width="250">

        <table width="<%=2.5*avg(i)%>" height="25" bgcolor="<%=color(i)%>">

          <tr><td> </td></tr>

        </table>

      </td>

      <td><%=Int(avg(i)+0.5)%>%</td>

    </tr>
<%  

    next

%>
'红色标记即为修改处

在这次错误中,我体会到了VBScript脚本语言与C语言的相通之处,同时对记录集也有了更深的了解。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息