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语言的相通之处,同时对记录集也有了更深的了解。
Microsoft VBScript 运行时错误 错误 '800a000d'
最新推荐文章于 2025-08-21 11:37:58 发布
本文介绍了在处理ASP页面时遇到的Microsoft VBScript运行时错误'800a000d',问题源于在for循环中尝试访问已关闭的记录集。通过老师指导,了解到问题在于循环前记录指针已位于eof,导致rs("choose")值不存在,引发类型不匹配。解决方案是使用数组索引直接输出,避免使用rs("choose")。这次错误加深了作者对VBScript和记录集的理解。
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
AutoGPT
AI应用
AutoGPT于2023年3月30日由游戏公司Significant Gravitas Ltd.的创始人Toran Bruce Richards发布,AutoGPT是一个AI agent(智能体),也是开源的应用程序,结合了GPT-4和GPT-3.5技术,给定自然语言的目标,它将尝试通过将其分解成子任务,并在自动循环中使用互联网和其他工具来实现这一目标

3749

被折叠的 条评论
为什么被折叠?



