verschiedene EINSATZFORM´S Daten als Collection
Option Explicit
Private tempcol As colEinsätze
Private xDatum As Date
Private xAnfang As String
Private xEnde As String
Private xStd As Double
Private xEinsNr As Integer
'Erstellen einer Collection für Neuen Einsatz
Public Function fEinsatzNeu(datum As Date) As colEinsätze
Set tempcol = New colEinsätze
With tempcol
xDatum = datum
xAnfang = "00:00"
xEnde = "00:00"
xEinsNr = 1
tempcol.Add xDatum, 0, xAnfang, xEnde, xEinsNr
End With
Set fEinsatzNeu = tempcol
Set tempcol = Nothing
End Function
''Erstellen einer Collection für Vorhandene Einsätze
Public Function fEinsatzVorhanden(datum As Date) As colEinsätze
Set tempcol = New colEinsätze
Dim rsEins As DAO.Recordset
strDSQ = "SELECT * FROM Einsätze WHERE Datum=" & Format(datum, _
"\#yyyy\-mm\-dd\#") & " ORDER BY Einsatz"
Set rsEins = DB.OpenRecordset(strDSQ, dbOpenSnapshot)
If rsEins.BOF = True And rsEins.EOF = True Then Exit Function
rsEins.MoveFirst
Do While Not rsEins.EOF
xDatum = datum
xEinsNr = rsEins.Fields(2)
xAnfang = Format(rsEins.Fields(3), "hh:mm")
xEnde = Format(rsEins.Fields(4), "hh:mm")
tempcol.Add xDatum, 1, xAnfang, xEnde, xEinsNr
rsEins.MoveNext
Loop
rsEins.Close
Set fEinsatzVorhanden = tempcol
Set tempcol = Nothing
End Function
'Erstellen einer Collection für weiteren Einsatz
Public Function fEinsatzWeitere(datum As Date) As colEinsätze
Set tempcol = New colEinsätze
With tempcol
xDatum = datum
xAnfang = "00:00"
xEnde = "00:00"
xEinsNr = fletzterEinsatz(datum) + 1
tempcol.Add xDatum, 2, xAnfang, xEnde, xEinsNr
End With
Set fEinsatzWeitere = tempcol
Set tempcol = Nothing
End Function Die Klasse für die EINSATZFORM Daten (vielleicht liege ich da mir der Bezeichnung KLASSE falsch)
Option Explicit
'KLASSE EINSÄTZE
'Erstellen der collectionKlasse(clsEinsätze)
Private xDatum As Date
Private xFormmodus As String
Private xEinsAnfang As String
Private xEinsEnde As String
Private xEinsStd As Double
Private xEinsNr As Integer
Public Property Get datum() As Date
datum = xDatum
End Property
Public Property Let datum(ByVal vNewValue As Date)
xDatum = vNewValue
End Property
Public Property Get Formmodus() As Integer
Formmodus = xFormmodus
End Property
Public Property Let Formmodus(ByVal vNewValue As Integer)
xFormmodus = vNewValue
End Property
Public Property Get EinsAnfang() As String
EinsAnfang = xEinsAnfang
End Property
Public Property Let EinsAnfang(ByVal vNewValue As String)
xEinsAnfang = vNewValue
End Property
Public Property Get EinsEnde() As String
EinsEnde = xEinsEnde
End Property
Public Property Let EinsEnde(ByVal vNewValue As String)
xEinsEnde = vNewValue
End Property
Public Property Get EinsStd() As Double
EinsStd = xEinsStd
End Property
Public Property Let EinsStd(ByVal vNewValue As Double)
xEinsStd = vNewValue
End Property
Public Property Get EinsNr() As Integer
EinsNr = xEinsNr
End Property
Public Property Let EinsNr(ByVal vNewValue As Integer)
xEinsNr = vNewValue
End Property Die Collection
Option Explicit
'COLLECTION
'Erstellen der Collection zur Klasse
Private tempEinsätze As Collection
Public Property Get item(ByVal Index As Long) As clsEinsätze
Set item = tempEinsätze(Index)
End Property
Public Property Get count() As Long
count = tempEinsätze.count
End Property
Public Sub remove(ByVal Index As Integer)
tempEinsätze.remove Index
End Sub
Private Sub Class_Initialize()
Set tempEinsätze = New Collection
End Sub
Private Sub Class_Terminate()
Set tempEinsätze = Nothing
End Sub
Public Function Add(datum As Date, modus As Integer, Anfang As String, Ende As _
String, EinsNr As Integer) As clsEinsätze
Dim DSnew As clsEinsätze
Set DSnew = New clsEinsätze
With DSnew
.datum = datum
.Formmodus = modus
' 0 -> ersterDS neuer tag
' 1 -> vorhandener DS
' 2 -> Weiterer DS
' 3 -> markierter DS
.EinsAnfang = Anfang
.EinsEnde = Ende
If Anfang <> "" And Ende <> "" Then .EinsStd = fMinBerechnen(Anfang, _
Ende) Else .EinsStd = 0
.EinsNr = EinsNr
End With
tempEinsätze.Add DSnew
Set Add = DSnew
Set DSnew = Nothing
End Function Hoffe ist nicht zuviel zum Übermitteln.
LG Günni |