Het volgende gedeclareerd:
21 staat voor aantal kolommen in de dataset (0 tot 20)
Bij listview 2 personen geslecteerd, krijg dus 2 x iPersID terug bv ",17,1"
Bij het debuggen gaat de 1e keer goed, maar zodra x=1 wordt krijg ik de melding
dat de index buiten de matrix grenzen ligt.
Iemand die mij op het padje kan brengen, ben nu al 3 dagen bezig.
21 staat voor aantal kolommen in de dataset (0 tot 20)
Code:
Dim sPersonen(iAantalRecords, 21) As String
Bij listview 2 personen geslecteerd, krijg dus 2 x iPersID terug bv ",17,1"
Bij het debuggen gaat de 1e keer goed, maar zodra x=1 wordt krijg ik de melding
dat de index buiten de matrix grenzen ligt.
Iemand die mij op het padje kan brengen, ben nu al 3 dagen bezig.
Code:
Private Sub SelectieMaken(ByVal iPersID As String, ByVal iAantalPersID As Integer)
Dim k As Integer
Dim iPos As Integer
For k = 1 To iAantalPersID 'aantal geselecteerde Persid's van Personen
If WerkId = 1 Or WerkId = 2 Then 'hebben dezelfde aantal velden met waardes
mySQL = ""
If k = 1 Then
iPersID = iPersID.Remove(0, 1) 'iPersID = ",17,1" dus eerst 1e komma weghalen
iPos = InStr(iPersID, ",") 'aantal posities tot en met komma
PersID = Microsoft.VisualBasic.Left(iPersID, iPos - 1) 'hou dus 17 over
Else
iPersID = iPersID.Remove(0, iPos) '2e iPersID
PersID = iPersID
End If
If Weeknr = 0 Then 'Alle weken van de gekozen persoon
mySQL = "SELECT u.*, g.Voorl,g.Voorv, g.Naam FROM UrenPersoneel as u INNER JOIN Gegevens AS g ON g.PersID= u.PersId Where
g.PersID =" & PersID & " ORDER BY u.Weeknr DESC"
Else 'bepaalde week van de gekozen persoon
mySQL = "SELECT * FROM UrenPersoneel WHERE PersID=" & PersID & " And Weeknr =" & Weeknr 'met weeknummer
End If
If WerkId = 4 Then 'Clienten
mySQL = "SELECT * FROM UrenClienten WHERE PersID=" & PersID
End If
End If
Dim ds As DataSet = New DataSet
da = New OleDb.OleDbDataAdapter(mySQL, Conn)
da.Fill(ds, "Zorgboerderij")
iAantalRecords = ds.Tables(0).Rows.Count 'Krijg x aantal records terug
For x = 0 To iAantalRecords - 1 'aantal Records
For i = 0 To 21 'aantal kolommen=20
If Not IsDate(ds.Tables(0).Rows(x).Item(i)) Then 'Veld 0 tot en met 3 is geen datum
sPersonen(x, i) = ds.Tables(0).Rows(x).Item(i) '[COLOR="#FF0000"]- Hier gaat het fout met de matrix grenzen als x 1 is-[/COLOR]
MsgBox(sPersonen(x, i))
Else
sPersonen(x, i) = Format(CDate(ds.Tables(0).Rows(x).Item(i)), "HH:mm") & "-" & Format(CDate(ds.Tables(0).Rows(x).Item(i + 1)), "HH:mm")
MsgBox(sPersonen(x, i))
i = i + 1
End If
Next i
Next x
Next k
end sub