2017-12-19 1 views
0

Ich habe eine Schleife, und ich möchte das Ergebnis in Array bringen. Hier ist meine Schleife.Wie speichert man das Loop-Ergebnis in einem Array in 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 

und danach werde ich die Variable an eine andere Funktion übergeben:

tarikh = NetWorkdays(dateFrom, dateTo, cutiumum) 

Public Function NetWorkdays(dtStartDate, dtEndDate, arrHolidays) 

aber, wenn ich versuche, für arrHolidays innerhalb der Funktion eine Schleife zu tun NetWorkdays, ist es nur 1 Daten zurück (nicht alle von der cutiumum).

Was denkst du ist mein Fehler?

aktualisieren

Ich verwende bereits

dim arrRecordset 

arrRecordset = rs.GetRows() 

aber ich habe einen Fehler in der Funktion

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 

Antwort

2
diese

Versuchen:

dim arrRecordset 
arrRecordset = rs.GetRows() 

Die getRows() Methode wird in einem Rutsch ein Re-Cord in einer zweidimensionalen Matrix-Transformation:

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

+0

es sieht gut aus, aber ich habe einen Fehler. Ich habe meine Frage bereits aktualisiert und wenn Sie einen Blick darauf werfen können, schätze ich. –

+0

Ist dies das gleiche Array, das Sie mit getRows() erstellen? In diesem Fall könnte es sein, dass das Array zweidimensional ist. Sie müssen UBound und LBound mit einer Dimension bereitstellen: https://www.w3schools.com/asp/func_lbound.asp –

+0

Diese Probleme sind leicht zu finden, wenn Sie einen Debugger verwenden. Haben Sie (kostenloses) Visual Studio installiert? Sie können es verwenden, um ASP zu debuggen. Fügen Sie das Wort "stop" irgendwo in Ihrem ASP-Code hinzu, und VS wird dort brechen. https://msdn.microsoft.com/en-us/library/ms525253(v=vs.90).aspx –

Verwandte Themen