Hallo,
stehe vor folgender Aufgabe:
Habe eine Formular mit einen Unterformular das die Einzelnen Datensätze in einer Übersicht präsentiert, nun möchte ich die Änderungen von verschiedenen Usern protokollieren in einen Memofeld, das Anlegen mit dem eingeloggten User + Datum Uhrzeit ist kein Problem, das funktioniert bereits.
Aber wie erkenne ich das was geändert wurde, und wie schreibe ich dann die geänderten Werte in mein Memofeld.
Ich brauche eigentlich nur ein Ereignis, das mir sagt wenn der User zum einen was geändert hat, und dann den Datensatz verlässt.
Dann würde ich halt das etwas umständlich in VB machen, denn soo gut bin ich halt da auch nicht. Hab halt nur „etwas“ Kenntnisse.
Vielleicht habe ich ja auch den falschen Gedanken?
Gruss
Werner
Hallo Werner,
nun weiss ich nicht, wie detailliert Du das haben möchtest, aber ich würde das auf die altmodische Art machen: jedes Feld hat in den Eigenschaften eine Funktion „beim Hingehen“ und „nach Aktualisierung“.
D.h. Du kannst über eine einfache Funktion „beim Hingehen“ den Wert in einer globalen Variablen speichern und den mit dem Wert „nach Aktualisierung“ vergleichen. Sollten die sich unterscheiden, könnte man den alten und den neuen Wert (oder nur den alten) zusammen mit dem Feldnamen und den anderen gewünschten Daten einfach an den aktuellen Wert des Memos anhängen.
Allerdings hast Du damit nicht abgesichert, ob irgendwer einen Datensatz löscht - dann ist auch das wahrscheinlich im einzelnen Datensatz enthaltene Memofeld weg.
Gruß
Sven
Hallo Sven,
so ungefähr hab ich mir das auch schon überlegt, aber was mich noch stört ist wie ich was dann ins Memofeld schreibe, am liebsten hätte ich halt solang wie der User in der Zeile ist und von Feld zu Feld springt, das in ne Variable geschrieben, und erst wenn er die Zeile verläßt und zum nächten datensatz springt dann gespeichert, aber vielleicht sollte ich einfach ne kleine Tabelle dranhängen anstatt dem Memofeld? Wär vielleicht sicherer oder?
Mir fällt nähmlich auch nichts besseres ein, dachte vielleicht gibts da was auf das wo ich grad nich komme.
Schon mal vielen Dank einstweilen,
CU Werner
P.S. Ein Problem, ich glaub nach Aktualisierung heißt aber, das das Ereignis nach jeden geänderten Zeichen ausgelöst wird oder?
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Du solltest bedenken, dass:
-
Memofelder ausserhalb der eigentlichen Tabellen gehalten werden und daher im Zugriff nicht sonderlich effizient sind.
-
Die Speicherung von Daten „über den Datensatz“ im Datensatz selbst eine etwas exotische Vorgehensweise ist (normalerweise legt man dann eine separate Protokolltabelle an) und auch zu zyklischen Aktualisierungen führen kann, auf jeden Fall den Zugriff auf die Echtdaten sukzessive verlangsamen wird.
-
Dass derartige Protokollfunktionen in „lebenden“ Datenbanken sehr schnell die Datenbank sprengen. Auf jeden Fall bekommt man schnell ein Missverhältnis zwischen echten Daten und Protokoll-Overhead.
Gruss aus dem Norden
Reinhard Kraasch