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)
谢谢.
首先::
操作员很好,但你明确地过度了.我建议清理代码以使其更具可读性.它也有助于调试,因为它分解了行并帮助按行定位错误.
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
.您的数组具有错误的维度,请检查其创建方式.