如何在VBScript中将循环结果存储到数组中?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在VBScript中将循环结果存储到数组中?相关的知识,希望对你有一定的参考价值。
我有一个循环,我想把结果放到数组中。这是我的循环。
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)
但是,当我尝试在函数arrHolidays
中为NetWorkdays
做一些循环时,它只返回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
答案
试试这个:
dim arrRecordset
arrRecordset = rs.GetRows()
getRows()方法将一次性将记录集转换为二维数组:
https://www.w3schools.com/asp/met_rs_getrows.asp
以上是关于如何在VBScript中将循环结果存储到数组中?的主要内容,如果未能解决你的问题,请参考以下文章
java:把查询结果存储到resultSet对象中,在把该对象的数据放置在一个JTable对象中