Plausibilitätsprüfung innerhalb einer Tabelle

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

  1. Ein Betruer kann nur 1 Patienten zur gleichen Zeit behandeln
  2. ein Patient darf immer nur von eine Betreuer behandelt werden.

Frage : Leider weiß ich nicht, wie die Prüfung ablaufen soll :frowning:

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:

  1. 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

  1. Hat der BETREUER an diesen Termin noch Frei ?
  2. 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)

  1. 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

  1. Ein Betruer kann nur 1 Patienten zur gleichen Zeit
    behandeln
  2. 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]