【问题标题】:How to store loop result into array in VBScript?如何将循环结果存储到 VBScript 中的数组中?
【发布时间】:2017-12-19 08:29:28
【问题描述】:

我有一个循环,我想将结果放入数组中。 这是我的循环。

    For i = 1 To bill
        a = rs("CT08_Tarikh") 'from db
        cutiumum = Array(a)   'and this is how I declare array
        rs.MoveNext
    Next
    rs.Close
    Set rs = Nothing
End If

然后,我会将变量传递给另一个函数:

tarikh = NetWorkdays(dateFrom, dateTo, cutiumum)

Public Function NetWorkdays(dtStartDate, dtEndDate, arrHolidays)

但是,当我尝试在函数 NetWorkdays 中为 arrHolidays 执行一些循环时,它只返回 1 个数据(并非全部来自 cutiumum)。

你认为我的错误是什么?

更新

我已经在用了

dim arrRecordset

arrRecordset = rs.GetRows()

但我在函数内部遇到错误

Public Function NetWorkdays(dtStartDate, dtEndDate, arrHolidays)
    Dim lngDays
    Dim lngSaturdays
    Dim lngSundays
    Dim lngHolidays
    Dim lngAdjustment
    Dim dtTest
    Dim i, x

    lngDays = DateDiff("d", dtStartDate, dtEndDate)
    lngSundays = DateDiff("ww", dtStartDate, dtEndDate, vbSunday)
    lngSaturdays = DateDiff("w", IIf(Weekday(dtStartDate, vbSunday) = vbSaturday, dtStartDate, dtStartDate - Weekday(dtStartDate, vbSunday)), dtEndDate)

    For x = LBound(arrHolidays) To UBound(arrHolidays)
        For i = 0 To lngDays
            dtTest = DateAdd("d", i, dtStartDate)

'error in line here: Subscript out of range: 'arrHolidays'
            If arrHolidays(x) = dtTest And Weekday(dtTest) <> 1 And Weekday(dtTest) <> 7 Then
                lngHolidays = lngHolidays + 1
            End If
        Next
    Next

    If Weekday(dtStartDate, vbSunday) = vbSunday Or Weekday(dtStartDate, vbSunday) = vbSaturday Then
        lngAdjustment = 0
    Else
        lngAdjustment = 1
    End If

    NetWorkdays = lngDays - lngSundays - lngSaturdays - lngHolidays + lngAdjustment
End Function

【问题讨论】:

    标签: arrays vbscript asp-classic


    【解决方案1】:

    试试这个:

    dim arrRecordset
    arrRecordset = rs.GetRows()
    

    getRows() 方法会一次性将记录集转换为二维数组:

    https://www.w3schools.com/asp/met_rs_getrows.asp

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-17
    • 1970-01-01
    相关资源
    最近更新 更多