Juli 14, 2020, 21:34:32

Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!


Table Validation Rule

Begonnen von doa115, Juni 29, 2020, 10:38:39

⏪ vorheriges - nächstes ⏩

doa115

Hallo zusammen,

bin noch etwas neu im Thema und hoffe hier richtig zu sein.

Habe eine Tabelle in der Abwesenheitstage für Urlaub oder Krankheit hinterlegt werden können, dies soll aber nur möglich sein wenn der entsprechende Tag nicht auch ein Feiertag ist. Feiertage werden in einer zweiten Tabelle gepflegt. Hätte nun gerne eine Validation Rule in der Fehltage-Tabelle definiert, die nachschaut ob es einen Eintrag in der Feiertags-Tabelle gibt und nur das Speichern zulässt wenn dies nicht der Fall ist.

Habe folgendes probiert aber Access läßt diese Regeln nicht zu - zuerst einfach mal mit einer Datumskonstante:

IsNull(DLookup("[Feiertag]", "tblFeiertage", "[Feiertag] = #06-29-2020#"))

auch folgendes habe ich schon versucht:

CurrentProject.Connection.Execute("select count(*) from tblFeiertage where Feiertag = #" & Format([Fehltag], "mm-dd-yyyy") & "#").Collect(0) = 0

Mach ich was falsch oder geht ein Check-Constraint auf eine fremde Tabelle direkt unter Access gar nicht.

Vielleicht kann jemand einem alten Cobol-Programmierer helfen?

Gruß




ebs17

Eine Hartverdrahtung wäre schon deshalb ungünstig, weil Feiertage regional unterschiedlich sind - und wie global vernetzt und abhängig wir sind, obwohl wir unsere 200 Quadratmeter nicht verlassen, haben wir ja eindrucksvoll in den vergangenen Tagen erfahren.
Technisch wäre es aber auch kompliziert bis unlösbar.

Praktikabler Weg: In Deiner Abwesenheitstabelle führst Du einfach Zeiträume (von, bis) und den Vorgang selber (Urlaub, Krankheit, Betriebsferien usw.).

Parallel führt man eine Kalendertabelle als Hilfstabelle. Die Tabelle enthält alle fortlaufenden Tage eines ausreichenden Zeitraumes, in weiteren Spalten auch Formate des Datumswertes wie z.B. Wochentagsnummer
Über die Kalendertabelle kann man die Abwesenheitszeiträume in Einzeltage auflösen, dabei gleich mal Wochenenden wegfiltern.
Das Ergebnis kann man nun um eine Inkonsistenzprüfung mit den relevanten Feiertagen ergänzen.

Also: Mit einigen durchdachten Tabellen und etwas SQL ist man ganz schnell dabei.
Mit freundlichem Glück Auf!

Eberhard

doa115

Hallo Eberhard,

vielleicht verstehen wir uns falsch, die Sätze in der Feiertagstabelle sind natürlich nicht fest verdrahtet, können natürlich je nach Region und Jahr beliebig eingetragen werden. In der Fehltagetabelle können je nach Person Abwesenheiten wegen Urlaub/Krankheit eingetragen werden. Es soll aber verhindert werden, dass in der Fehltagetabelle für eine Person ein Eintrag für Urlaub/Krankheit erfasst wird obwohl an diesem Tag ein Feiertag vorliegt.  Hinzu kommt noch, dass die Fehltage auch masch. generiert werden können, z.B. 3 Wochen Urlaub für Angela ab dem 30.04.2020, im Beispiel wäre ja dann der 01.05.2020 ein Feiertag, dieser soll dann aber nicht als Urlaub eingetragen werden.

Gruss
Albert