allo ihr hier
ich habe eine Tabele(access) mit folgenden Aubau
Name der Tabelle --> ArbeitplanTbl
*ArbeitplanID (primär)
Datum
Arbeitsbeginn
Arbeitsende
BetreuerID
PatientenID
Bemerkung
Die Problem ist nun wie folgt,
beim aufruf der „Beforeupdate“ Routine"
soll folgende Prüfung erfolgen
- Ein Betruer kann nur 1 Patienten zur gleichen Zeit behandeln
- ein Patient darf immer nur von eine Betreuer behandelt werden.
Frage : Leider weiß ich nicht, wie die Prüfung ablaufen soll 
ich denke da an folgenden groben aufbau
…
if plausibilätsprüfung()= false then
msgbox … anzeige des datensatzes welcher im konflikt steht.
(benutzer soll seine angaben korregieren…)
else
… übernahme der daten und fortsetzen
Das Formular hat den Namen --> ArbeitsplanFrm
Ich danke auch im vorraus…
Gruß aus Berlin Jens
NACHTRAG
Die Datenbank um der es sich handelt, ist hier zu finden
Leider habe ich es immernoch nicht geschaft eine Plausibilitätsprüfung der Arbeitszeiten einzuführen
(es um das Formular „Arbeitsplan“
http://www.jenshagen/daten/pflege.mdb
Jens Hagen
Hi Jens,
zwei Empfehlungen, wenn Du gestattest:
- Versuche Deine Frage so zu formulieren, dass ein halbwegs
mit Hirn ausgestatteter Leser erkennen kann, wo es hakt. Dazu
als Lesestoff:
http://www.lugbz.org/sections.php?op=viewarticle&art…
Sorry Ralf, ich versuche es mal neu zu formulieren.
in meiner Pflege-Datenbank ist eine Tabele um Arbeitszeiten einzugeben
Der Aufbau ist ist weiter oben zu sehen (im ersten Posting)
Was ich nun erreichen möchte, das nach der Eingabe der Daten im Formular
zuerst überprüft wird, ob die Eingabe des Nutzer so möglich ist
d.h. es muss folgendes geprüft werden
- Hat der BETREUER an diesen Termin noch Frei ?
- Ein Patient darf niemals mehr als einen BETREUER Zeitgleich habe
Sollte Fall 1 oder 2 eintreten, dann soll eine MSGBOX eingeblendet werden, welche den Datensatz anzeigt, welcher in Konflikt mit den Formulardaten steht (User muss also nachbessern)
- Lerne Links zu setzen. Deiner ist Schrott. Nutze cut &
paste.
Sorry. hier nun der richtige Link http://www.jenshagen.de/daten/pflege.mdb
Gruß aus Berlin… Jens
Hallo,
ich habe eine Tabele(access) mit folgenden Aubau
Name der Tabelle --> ArbeitplanTbl
*ArbeitplanID (primär)
Datum
Arbeitsbeginn
Arbeitsende
BetreuerID
PatientenID
Bemerkung
Die Problem ist nun wie folgt,
beim aufruf der „Beforeupdate“ Routine"
soll folgende Prüfung erfolgen
- Ein Betruer kann nur 1 Patienten zur gleichen Zeit
behandeln
- ein Patient darf immer nur von eine Betreuer behandelt
werden.
eigentlich ist die Sache ganz simpel. Du muss vor dem Update eine SQL formulieren, die die Überlappungen der Betreuungszeiten zum einen des Betreuers zum anderen des Patienten abfragt. Wann gibt es Überlappungen? Wenn der neue Arbeitsbeginn oder das neue Abeitsende in ein Bereits existierendes Intervall fällt oder ein bereits existierender Arbeitsbeginn oder Arbeitsende in das neue Intervall fällt. Und das ganze jeweils mal aus Sicht des Betreuers mal aus Sicht des Patienten. Daraus ergibt sich eine relativ Umfangreiche SQL, die aus Performancegründen etvl besser in zwei SQL aufgeteilt werden sollte.
Der Syntax ist etwa folgender:
SELECT count([BETREUERID]) FROM [ArbeitplanTbl]
WHERE
[BETREUERID] = neueBetreuerID
AND (
(neuerArbeitsbeginn >= [ARBEITSBEGINN] AND neuerArbeitsbeginn [ARBEITSBEGINN])
OR
([ARBEITSENDE] neuerArbeitsbeginn)
OR
([ARBEITSBEGINN] >= neuerArbeitsbeginn AND [ARBEITSBEGINN]