In dieser Angelegenheit hätte ich noch ein Anliegen:
Zunächst einmal vielen Dank für die große Hilfe in dieser Thematik, die "Schnellberechnung von Netto-Arbeitstagen" finde ich richtig gut!
In meiner "Personaldatenbank" verwende ich folgenden Code, den ich mir aus dem Netz zusammengesucht habe, weil ich in VBA nicht firm bin:
Function NETTO(dat1 As Date, dat2 As Date)
'Variablen setzen
'AT = Arbeitstage
'i = Zähler
'NettoTage = ...
Dim AT As Long, i As Long, NettoTage As Long
Dim db As DAO.Database
'rsFT ist die Variable, die als "Zeiger" in der Tabelle "TBL_Feiertage" wandert
Dim rsFT As DAO.Recordset
Set db = CurrentDb()
Set rsFT = db.OpenRecordset("tbl_feiertage", dbOpenSnapshot)
rsFT.MoveFirst
'Bei DateDiff-Funktion ist "d" = Tag
AT = DateDiff("d", dat1, dat2)
'Der Zähler beginnt bei Null
For i = 0 To dat2 - dat1
'Wenn dat1, oder auch "Stellen_Von" plus i NICHT Sonntag und nicht Samstag ist, dann prüfe,
'ob "Stellen_Von" plus i in der Tabelle "TBL_Feiertage" in der Spalte "FeierDatum" zu finden ist
'wenn das nicht der Fall ist, dann beginne zu zählen (also, wenn doch, dann zur nächsten Zeile in der Tabelle
If Not Weekday(dat1 + i) = vbSunday And Not Weekday(dat1 + i) = vbSaturday Then
rsFT.FindFirst "FeierDatum = #" & Format(dat1 + i, "yyyy mm dd") & "#"
If rsFT.NoMatch Then
NettoTage = NettoTage + 1
End If
rsFT.MoveFirst
End If
Next i
rsFT.Close
NETTO = NettoTage
End Function
Nun wollte ich meine Abfrage um die "Nichtarbeitstage" erweitern - z.B. arbeitet eine Mitarbeiterin am Freitag nicht, oder ein Mitarbeiter arbeitet nur an Montagen und Freitagen etc. Dies habe ich in einer Bewegungstabelle per Checkbox gelöst.
Nun mein Ziel:
Wenn ein Mitarbeiter z.B. innerhalb eines Zeitraumes krank ist und ein Wochentag fällt auf einen Nichtarbeitstag, dann ziehe diesen Tag von NETTO(dat1;dat2) ab.
Im Grunde genommen ist das wie die Variablen-Feiertags-Checkboxen in der "Schnellberechnung von Netto-Arbeitstagen"! Nun ich weiss nicht wie das in Kombination mit Tabellen und Abfragen zu lösen ist.
Für Hilfe bin ich sehr dankbar!
James