我的名字是埃德,我需要你的帮助。在我的经典ASP应用程序中加载页面时出现此错误:
Microsoft VBScript runtime error '800a0009' Subscript out of range: 'cont' /admin/cadastros_apz_material.asp, line 173
相关代码是:
do while not rs.eof
for i = 1 to tpp
if i = 1 then matriz(cont) = Rs("id_material_apv_produto") else matriz(cont) = matriz(cont) & "_" & rs("id_material_apv_produto")
rs.movenext: if rs.eof then exit do
next: cont = cont + 1
loop: set rs = nothing: if cint(pag) = 1 and ubound(matriz) >= 1 then id = matriz(1)
感谢。
答案 0 :(得分:5)
首先关闭::
运营商很不错,但你明确地过度了。我建议清理代码以使其更具可读性。它也有助于调试,因为它会破坏线路并帮助按行定位错误。
Do While Not rs.EOF
For i = 1 To tpp
If i = 1 Then
matriz(cont) = rs("id_material_apv_produto")
Else
matriz(cont) = matriz(cont) & "_" & rs("id_material_apv_produto")
End If
rs.MoveNext
If rs.EOF Then Exit Do
Next
cont = cont + 1
Loop
Set rs = Nothing
If CInt(pag) = 1 And UBound(matriz) >= 1 Then
id = matriz(1)
End If
现在为您的错误。它抱怨说,在某些时候,cont
指的是matriz
之外的位置。您的数组具有错误的维度,请检查它的创建方式。
答案 1 :(得分:3)
看来matriz()在索引处不包含数值元素,其值存储在cont中。
猜测: