Blaubmania
Erfahrenes Mitglied
Hiho,
also ich habe folgendes skuriles Problem ich habe mehrere Listenfelder in VBA Access dort werden Uhrzeiten abgebildet das fängt sagen wa mal bei 10:00 an und geht in 15 Minuten schritten weiter klappt alles wunderbar ich hol mir die Anfangs und Endzeit aus einer Tabelle da durch Schichtarbeit jeder Mitarbeiter ne andere anfangs und endzeit haben kann.
So nun zu meinem Phänomen bei einer bestimmten Schicht bricht er einen Schritt zu früh die Schleife ab:
Hier mal der Code
So die Zeit wo er probs macht geht von 6:00 - 14:30
d.h. er zeigt dann an 6:00, 6:15 ..... 14:30 zumindest macht er es so bei den anderen Schichten bei dieser aba bricht er schon bei 14:15 ab obwohl die Do Schleife dann folgende Werte hat 14:30:00 > 14:30:00 hat jemand ne Idee warum er ausgerechnet hier schon abbricht obwohl die startzeit ja nicht größer ist als die endzeit. Wenn Endzeit 14:45 ist geht die Schleife wieda ganz normal durch.
---------------------
Hab bischen rumgetestet wenn die Endzeit einen Wert <= 14:30 hat wird die Schleife immer einen Durchlauf zu früh beendet
also ich habe folgendes skuriles Problem ich habe mehrere Listenfelder in VBA Access dort werden Uhrzeiten abgebildet das fängt sagen wa mal bei 10:00 an und geht in 15 Minuten schritten weiter klappt alles wunderbar ich hol mir die Anfangs und Endzeit aus einer Tabelle da durch Schichtarbeit jeder Mitarbeiter ne andere anfangs und endzeit haben kann.
So nun zu meinem Phänomen bei einer bestimmten Schicht bricht er einen Schritt zu früh die Schleife ab:
Hier mal der Code
Visual Basic:
Private Sub Form_Load()
Dim i As Integer
Dim j As Integer
Dim db As Database
Dim r As Recordset
j = 1
i = 1
Set db = CurrentDb
Set r = db.OpenRecordset("Arbeitszeit", dbOpenDynaset)
r.FindFirst "AZeitText ='" & Form_abf_EefassungMed2.AZeitText & "'"
startzeit = r!AZEKom 'Startzeit wird gespeichert'
If startzeit > r!AZEGeh Then 'Wenn die Startzeit größer die Endzeit ist Wird die Endzeit erst mal auf 23:45 gestellt z.B. Startzeit 22:00 + Endzeit 6:45
endzeit = TimeValue("23:45")
Else
endzeit = r!AZEGeh
End If
Do Until startzeit > endzeit 'Dies ist die Stelle wenn Startzeit GRÖßER ist als Endzeit soll er abbrechen
If startzeit = "23:45:00" Then ' Sollte die Startzeit 23:45:00 betragen wird die richtige Endzeit eingetragen und Startzeit auf 0:00 gesetzt da sonst beim weiter hoch zählen (23:45 + 00:15) ein Datum als ausgabe folgen würde
Me.Controls("lstzeit" & i).AddItem startzeit
startzeit = TimeValue("00:00")
endzeit = r!AZEGeh
j = j + 1
End If
If j > (i * 17) Then
i = i + 1
End If
Me.Controls("lstzeit" & i).AddItem startzeit
startzeit = startzeit + TimeValue("00:15")
j = j + 1
Loop
End Sub
So die Zeit wo er probs macht geht von 6:00 - 14:30
d.h. er zeigt dann an 6:00, 6:15 ..... 14:30 zumindest macht er es so bei den anderen Schichten bei dieser aba bricht er schon bei 14:15 ab obwohl die Do Schleife dann folgende Werte hat 14:30:00 > 14:30:00 hat jemand ne Idee warum er ausgerechnet hier schon abbricht obwohl die startzeit ja nicht größer ist als die endzeit. Wenn Endzeit 14:45 ist geht die Schleife wieda ganz normal durch.
---------------------
Hab bischen rumgetestet wenn die Endzeit einen Wert <= 14:30 hat wird die Schleife immer einen Durchlauf zu früh beendet
Zuletzt bearbeitet: