【问题标题】:Type Mismatch Error: 'UBound'类型不匹配错误:“UBound”
【发布时间】:2016-04-28 16:26:42
【问题描述】:

我需要帮助解决一个非常烦人的问题,我从今天早上 8 点开始就一直在处理这个问题。在调试经典的 asp 错误方面,我绝不是专业人士。但是,我知道发生了什么,但不完全确定如何处理/消除此问题:

问题: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 行无关紧要(只是基于数组和另一个查询的计算),只是想添加 'wend' 语句,因此没有人认为它没有正确编码。

额外信息: 这适用于我们的自定义 vb 应用程序,对于这个特定的 asp 文件,用户转到 Report>Daily>Summary,然后用户从那里选择某一天以获取当天的财务摘要。如果我今天运行报告,它运行并且我得到数字,如果我在本月 26 日运行它,它运行并且执行没有错误。如果我在昨天(2016 年 4 月 27 日)运行它,我会在我们的 vb 应用程序的 reportViewer 中得到这个: (Microsoft VBScript 运行时错误'800a000d')

类型不匹配:'ubound'

/apps/Program14/reports/trans_summary.asp,第 238 行

我还没有尝试解决这个问题,因为我不确定如何处理这个问题。我什至查看了 iis 日志文件,它的错误是 500 0 0 130。然后配置 IE 以在运行时正确显示错误的详细信息。这就是它吐出的东西,目前被卡住了。任何帮助将不胜感激。我在谷歌上搜索并阅读了无数其他文章,但我仍然对这个问题感到有些失落,而且微软的帮助与外国技术支持差不多。

【问题讨论】:

    标签: vbscript asp-classic


    【解决方案1】:

    ubound(varCampArray) 不是>0 时,varCampArray2 会有什么?它可能不是一个数组。这就是为什么varCampArray2 上的UBound 方法会抛出错误!

    在使用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 块内移动第二个 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,在处理了这一天大部分时间之后,我只需要离开我的机器重新启动我的大脑,然后回来阅读你的答案,我终于发现了这个问题.问题是数据被遗漏(查询/报告成功所需的数组数据)。您的回答使我解决了我的问题,我非常感谢。我正在将您的建议添加到报告代码中(将 if 嵌套在另一个 if 中,然后从那里开始)。
    猜你喜欢
    • 1970-01-01
    • 2013-01-16
    • 2014-02-05
    • 2018-06-08
    • 2012-02-16
    • 2012-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多