"下标范围"错误(页面加载中的vbscript)

use*_*542 0 vbscript asp-classic

我的名字是埃德,我需要你的帮助.在我的经典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)
Run Code Online (Sandbox Code Playgroud)

谢谢.

Tom*_*lak 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
Run Code Online (Sandbox Code Playgroud)

现在为你的错误.它抱怨说,在某些时候,cont指的是一个位置之外matriz.您的数组具有错误的维度,请检查其创建方式.