Hallo Experten,
ich stehe vor folgendem Problem:
In meiner Fortbildungsdatenbank habe ich dieTabelle "T_TNBeschAusmass_gueltigkeit" mit folgenden Feldern:
ID_TNBA_gueltigkeit (Autowert)
ID_TNNr (Nachschlagfeld zur Tabelle "T_Teilnehmer)
BeschAusmassStunden (Zahl Long Integer)
gueltig_von (Datumsfomat kurz 01.01.2016)
gueltig_bis(Datumsformat kurz 01.01.2016)
Die Tabelle T_MLVNr mit den Feldern:
ID_MLVNr (Autowert)
MLVNr (Textfeld)
MLV_Beschreibung (Textfeld)
SU_Kontingent (Zahl Long Integer)
Und hier nun mein Problem:
In der Tabelle "T_TNBeschAusmass_gueltigkeit" werden die Zeiträume je Teilnehmer gespeichert für den das Beschäftigungsausmaß des Teilnehmers gültig ist.
Dies kann z.B sein:
Teilnehmer 1
20 Stunden vom 1.1.1985 bis 31.12.9999
Teilnehmer 2
30 Stunden vom 1.5.2015 bis 28.2.2017
20 Stunden vom 1.3.2017 bis 15.7.2017
40 Stunden vom 16.7.2017 bis 31.10.2017 (Hier scheidet der Mitarbeiter aus)
Teilnehmer 3
40 Stunden vom 1.2.2017 bis 31.5.2017
30 Stunden vom 1.6.2017 bis 31.12.9999
Jeder Teilnehmer hat auf Grund seiner Beschäftigungsgruppe (MLVNr) ein Sonderurlaubskontingent pro Jahr, das abhängig von seinem Beschäftigungsaumaß und der Dauer des Beschäftigungsausmaßes im aktuellen Kalenderjahr ist.
Wie kann ich aus den oben angeführten Zeiträumen ermitteln wieviele Tage je Beschäftigungsausmaß bei jedem Teilnehmer in das aktuelle Kalenderjahr fallen?
LG Guido
Nimm das Ende des zu untersuchenden Jahres, vergleiche es mit dem Enddatum und verwende den keineren Wert. Nimm den Anfang des zu untersuchenden Jahres, vergleiche mit dem Startdatum und verwende den größeren Wert.Ein Beispiel aus dem VBA-Direktbereich verdeutlicht das.
a = #2016-11-01#
e = #2018-03-31#
da = DateSerial(Year(Date()), 1, 1)
de = DateSerial(Year(Date()), 12, 31)
?IIf(de > e, e, de) - IIf(da > a, da, a) + 1
365
e = #2017-10-31#
?IIf(de > e, e, de) - IIf(da > a, da, a) + 1
304
e = #2018-03-31#
a = #2017-02-01#
?IIf(de > e, e, de) - IIf(da > a, da, a) + 1
334
e = #2017-10-31#
?IIf(de > e, e, de) - IIf(da > a, da, a) + 1
273
Besten Dank für die rasche Hilfe.