类型不匹配错误:'UBound'
我需要一个非常烦人的问题的帮助,我从今早8开始一直在努力..我不是专业的,当涉及到调试经典的asp错误。然而,我知道足够的知道发生了什么,但不完全确定如何处理/根除这个问题:类型不匹配错误:'UBound'
问题:sql查询可能会返回任何将导致我的数组为空,这是给我标题中指定的错误。
代码:
233 while not rs.eof
234 varCampArray = split(trim(rs("Notes")) & "", ";")
235 If ubound(varCampArray) > 0 Then
236 varCampArray2 = split(varCampArray(0) & "", "=")
237 End If
238 if ubound(varCampArray2) > 0 then
254 wend
线239-253是无关的(只是基于关闭阵列和另一个查询计算),只是想那么没有人认为其不正确编码添加“蜿蜒”的语句。
附加信息: 这是我们自定义的vb应用程序,对于这个特定的asp文件,用户转到Report> Daily> Summary,然后从那里用户选择某一天来获得当天的财务摘要。如果我今天运行这个报告,它会运行,并且我得到数字,如果我在本月26日运行它,它会运行并且没有错误地执行。如果我运行它昨天(2016年4月27日),我在我们的VB应用程序获取此在的ReportViewer: (Microsoft VBScript运行时错误 '800a000d')
类型不匹配:UBOUND'
/应用/Program14/reports/trans_summary.asp,第238行
我还没有试图解决这个问题,因为我不确定如何处理这个问题。我甚至查看了iis日志文件,它的错误是500 0 0 130.然后配置IE以正确显示运行时错误的详细信息。这就是它吐出来的东西,而且我现在被卡住了。任何帮助将不胜感激。我搜索了无数其他文章,但我仍然对这个问题感到迷茫,而且微软和外国技术支持一样有帮助。
当ubound(varCampArray)
不是>0
,varCampArray2
会有什么?它可能不是一个数组。这就是为什么UBound
方法在varCampArray2
上抛出错误!
只是在使用UBound之前检查它是否是数组。
while not rs.eof
varCampArray = split(trim(rs("Notes")) & "", ";")
If ubound(varCampArray) > 0 Then
varCampArray2 = split(varCampArray(0) & "", "=")
End If
If isArray(varCampArray2) Then
if ubound(varCampArray2) > 0 then
'do something here
end If
Else
Msgbox "all these time i thought it was an array!!!"
End If
wend
或者简单地说,如果在第一个if区块内,您可以移动第二个。
while not rs.eof
varCampArray = split(trim(rs("Notes")) & "", ";")
If ubound(varCampArray) > 0 Then
varCampArray2 = split(varCampArray(0) & "", "=")
if ubound(varCampArray2) > 0 then
'do something here
end If
End If
wend
感谢VINS,处理这个问题最多的一天,只是不得不从我的机器走开,只是重新启动我的脑海里,然后回来看你的答案后,我终于发现了问题。问题在于数据被忽略(为了使查询/报告成功,数组数据是必需的)。你的回答引导我解决了我的问题,我非常感谢。我将你的建议添加到报告代码中(如果嵌套在另一个嵌套中,然后从那里嵌套)。 – user2001006