Grundsätzliche Frage zu 1:n-Beziehungen in Formularen....

28/12/2007 - 08:37 von Nicolas Nickisch | Report spam
Hi NG,
der titel hört sich ziemlich blödsinnig an, weil er das eigentliche
praktische Problem nicht beschreibt.
Aber wahrscheinlich wird jedermann tàglich damit konfrontiert:

Bei mir ist es eine Datenbank zur Gutachtenverwaltung.

Dazu gibt es in der Tabelle 'Auftrag' einen Verweis auf die Tabelle
'Patienten'. In der AUftragstabelle wird also nur die Nummer des
zugehörigen Datensatzes in der Tabelle Patienten gespeichert.
Banal, und funktinoiert auch bestens.

In meinem Formular basierend auf einer Abfrage, die diese Beziehung
berücksichtigt, kann ich nun die Daten des Patienten eingeben, ein Datensatz
in der Patiententabelle wird automatisch angelegt, die Nummer in der
Auftragstabelle hinterlegt.
Soweit so gut - jetzt zum eigentlichen Problem.

Ausserdem habe ich ein Kombinationsfeld mit allen Patienten, aus dem ich
einen bereits vorhandenen auswàhlen kann (weil jemand zum zweiten Mal
kommt). Klappt auch problemlos.

Nun aber zum Fallstrick.
Angenommen, ich habe einen vorhandenen Patienten ausgewàhlt und stelle dann
fest, dass es doch der falsche war.

Wenn ich nun in den Daten , die bereits ausgewàhlt waren herumpfusche, dann
wird ja kein neuer Patient angelegt, sondern die Daten des bereits
vorhandenen geàndert; im Extremfall werden die Daten eines bereits
vorhandenen Patienten ersetzt durch Daten eines neuen.
Der alte P. würde dann aus den Annalen der Datenbank getilgt und wàre auch
nie drin gewesen.

Was tun ? Gibt es da grundsàtzliche Mechanismen, die das verhindern können.?

Gruss Nico
 

Lesen sie die antworten

#1 Jens Schilling
28/12/2007 - 11:03 | Warnen spam
Hallo, Nico

Nicolas Nickisch wrote:
Nun aber zum Fallstrick.
Angenommen, ich habe einen vorhandenen Patienten ausgewàhlt und
stelle dann fest, dass es doch der falsche war.

Wenn ich nun in den Daten , die bereits ausgewàhlt waren
herumpfusche, dann wird ja kein neuer Patient angelegt, sondern die
Daten des bereits vorhandenen geàndert; im Extremfall werden die
Daten eines bereits vorhandenen Patienten ersetzt durch Daten eines
neuen. Der alte P. würde dann aus den Annalen der Datenbank getilgt und
wàre
auch nie drin gewesen.

Was tun ? Gibt es da grundsàtzliche Mechanismen, die das verhindern
können.?



So ganz habe ich den Aufbau Deines Formulares noch nicht wirklich
verstanden, aber ich denke, dass ist auch so wichtig nicht, da Du eher ein
grundsàtzliches Problem ansprichst - das (fehlerhafte) Ändern von
Datensàtzen.

Solange es einem Anwender gestattet ist, überhaupt Daten zu àndern - und das
ist schliesslich die Norm - ist natürlich die Gefahr gegeben, dass Daten
fehlerhaft geàndert werden. Dies ist letztlich kaum zu verhindern - es sein
denn, man würde es ganz unterbinden - aber zumindest zu erschweren. So
könntest Du z.B. Dein Formular nur zur Dateneingabe öffnen oder das
Bearbeiten nicht zulassen ( siehe dazu die Optionen in den Eigenschaften
des Formulares unter Daten), bzw. dies erst z.B. durch das Anklicken einer
entsprechenden Schaltflàche erlauben. Aber letztlich kannst Du auch damit
Fehleingaben nicht wirklich ausschliessen - solange die Bearbeitung der
Daten grundsàtzlich gegeben sein muss.

Ein Ansatz den Verlust der Daten zu vermeiden könnte es daher sein,
Änderungen an Datensàtzen zu protokollieren - um diese im Zweifelsfalle
wieder rekonstruieren zu können.

Wenn Du dies als einen für Dich in Frage kommenden Weg betrachtest, schau
Dir mal diesen Link an:

http://www.mvps.org/access/modules/mdl0021.htm

Da kannst Du auch eine Demo finden, die das grundsàtzliche Vorgehen
demonstriert.

Eine weitere Demo (ds_ànderungsprotokoll) kannst Du hier finden :

http://www.access-beispiele.tommyk-...w_formAuch das Beispiel "Protokollierung" geht in die gleiche Richtung, und wàrehier zu finden :http://www.access-home.de/accbsp.ht..._______FAQ: http://www.donkarl.com

Ähnliche fragen