von eBayer » So, 12.04.2009 20:21
Ich denke, daß Du nicht darum herumkommst. Ist ja auch kein grosses Problem, wenn man es rechtzeitig berücksichtigt.
Ich habe festgestellt, daß man unter dem Zwang andere Wege zu gehen, oft plötzlich erkennt, daß man Dinge auch vereinfachen oder weglassen kann.
Wenn Du nicht um zusätzliche Tabellen in einem Formular herumkommst, legst Du einfach Eingabefelder ohne Datenbindung an. Das Wegschreiben dieser Daten machst Du am besten vom Formular-Ereignis "nach der Datensatzaktion" abhängig. Dann bist Du nicht darauf angewiesen, daß auch immer ordentlich der Speichern-Button, den Du vermutlich ja im Dialog hast, gedrückt werden muß. Auch eine Datensatzbewegung bei geändertem Formular wird so abgefangen.
Allerdings mußt Du beachten, daß geänderte Eingabefelder ohne Datenbindung kein Speichern erzwingen. Evtl. das Ereignis "vor dem Datensatzwechsel" abfangen und dort das Nötige programmieren.
Ich hatte bei der Erfassung von vielen Daten das Problem, daß die Daten nicht oder nicht zur rechten Zeit physisch in die Datenbank geschrieben wurden. Solange ich mich als Windows-Benutzer nicht abgemeldet hatte, waren die Daten auch bei wiederholtem Aufruf der Anwendung verfügbar, also alles OK. Meldete ich mich aber als Windows-Benutzer ab und danach wieder an, so waren die Daten verschwunden. Allerdings war das bei mir mit der Besonderheit verbunden, daß ich meine Anwendung mit einem externen Formular, welches ich als Menu eingesetzt habe, starte. Dadurch verhindere ich, daß der Anwender Zugriff auf die IDE bekommt.
Lösung um die physische Speicherung der Daten zu erzwingen: gezieltes Speichern der Daten beim Ereignis "nach der Datensatzaktion"
DBDoc = oEvent.Source.Parent.Parent.Parent
DBDoc.store()
Das mußt Du allerdings sinngemäß anpassen.
Hört sich kompliziert an, war es bei mir auch bis ich den Lösungsweg gefunden hatte, aber mit diesen Vorinformationen ist es wirlich ganz einfach.
Also auf geht's ...... viel Spaß
Ich denke, daß Du nicht darum herumkommst. Ist ja auch kein grosses Problem, wenn man es rechtzeitig berücksichtigt.
Ich habe festgestellt, daß man unter dem Zwang andere Wege zu gehen, oft plötzlich erkennt, daß man Dinge auch vereinfachen oder weglassen kann.
Wenn Du nicht um zusätzliche Tabellen in einem Formular herumkommst, legst Du einfach Eingabefelder ohne Datenbindung an. Das Wegschreiben dieser Daten machst Du am besten vom Formular-Ereignis "nach der Datensatzaktion" abhängig. Dann bist Du nicht darauf angewiesen, daß auch immer ordentlich der Speichern-Button, den Du vermutlich ja im Dialog hast, gedrückt werden muß. Auch eine Datensatzbewegung bei geändertem Formular wird so abgefangen.
Allerdings mußt Du beachten, daß geänderte Eingabefelder ohne Datenbindung kein Speichern erzwingen. Evtl. das Ereignis "vor dem Datensatzwechsel" abfangen und dort das Nötige programmieren.
Ich hatte bei der Erfassung von vielen Daten das Problem, daß die Daten nicht oder nicht zur rechten Zeit physisch in die Datenbank geschrieben wurden. Solange ich mich als Windows-Benutzer nicht abgemeldet hatte, waren die Daten auch bei wiederholtem Aufruf der Anwendung verfügbar, also alles OK. Meldete ich mich aber als Windows-Benutzer ab und danach wieder an, so waren die Daten verschwunden. Allerdings war das bei mir mit der Besonderheit verbunden, daß ich meine Anwendung mit einem externen Formular, welches ich als Menu eingesetzt habe, starte. Dadurch verhindere ich, daß der Anwender Zugriff auf die IDE bekommt.
Lösung um die physische Speicherung der Daten zu erzwingen: gezieltes Speichern der Daten beim Ereignis "nach der Datensatzaktion"
DBDoc = oEvent.Source.Parent.Parent.Parent
DBDoc.store()
Das mußt Du allerdings sinngemäß anpassen.
Hört sich kompliziert an, war es bei mir auch bis ich den Lösungsweg gefunden hatte, aber mit diesen Vorinformationen ist es wirlich ganz einfach.
Also auf geht's ...... viel Spaß