von Stephan » Mi, 23.02.2005 18:20
Ich bin ja gerne bereit zuzugeben das ich mich irre, nur ich verstehe es nicht.
Du hast ein Formular mit mehreren Feldern. Ein Teil davon wird direkt aus der Datenbank übernommen, ein Teil der Werte per Makro eingetragen oder meinetwegen auch geändert. Der Nutzer sieht jetzt einen(!) Datensatz der Datenbank, alle Werte die hierbei direkt aud der Datenbank stammen stehen im Formular und in der Datenbank, Werte die per Makro eingetragen oder geändert wurden stehen zunächst temporär im Formular. Ändert oder ergänzt der Nutzer Werte stehen die ebenfalls im Formular. Solange der Nutzer den Datensatz nicht wechselt sind alle Werte vorhanden. Sobald der Nutzer den Datensatz wechselt werden alle Temporärwerte in die Datenbank geschrieben. Versucht der Nutzer das Formular zu schließen kann es sein das die Werte eines Datensatzes nicht geschrieben werden, weil der Nutzer die Sicherheitsabfrage verneint. Nur im letzteren Fall mußt Du ein Makro starten was sicherstellt das die Werte geschrieben werden.
Alle anderen Werte werden zu jeder Zeit automatisch in der Datenbank geändert oder ergänzt, vorausgesetzt das das Formular korrekt mit der Datenbank verknüpft ist und die Datenbank nicht schreibgeschützt ist. Ich sehe bei konkreter Verknüpfung nicht mal die Möglichkeit ein Schreiben der aktualisierten Werte bei Wechsel des Datensatzes zu verhindern, selbst wenn ich das wollte. Ich könnte nur wenn ich das will unmittelbar nach dem Schreiben gleich wieder löschen. (Ja klar ich kann mir einen Code ausdenken der zu Beginn des Wechsels des Datensatzes die Formularfelder löscht o.ä. bloß das wäre dann alles absichtlich.)
Ja und ich kann natürlich nicht sagen, wie Du Dein Formular erstellt hast. Ein 'normal' mittels Assitent erstelltest Formular wird sich IMHO immer so verhalten wie geschildert.
Also bitte erkläre mir das nochmal, ich verstehe es nicht.
Und ich habe das mit Fokuserhalt und Verlust nicht geprüft, bloß selbst wenn es nur bei Fokusverlust gehen sollte, wo ist das Problem? Die Anzahl der Elemente auf dem Formular ist endlich. Willst Du für ein Element das Ereignis Fokuserhalt auswerten und es geht nicht direkt werte einfach für alle Übrigen das Ereignis Fokusverlust aus. Denn wenn Du z.B. 10 Steuerelemente hast (Nr.1 bis Nr.10) und eines der Elemente von Nr.1 bis Nr.9 den Fokus verliert, muß zwangsläufig Nr.10 ihn gerade erhalten haben.
P.S.
Nur um sicher zu gehen: Wir reden über ein (Datenbank)formular im Sinne der OOo-Terminologie und nicht über einen Basic-Dialog. (dieses Mißverständnis gab es hier nämlich schon öfter weil bei MS Office eine Userforn eine Form oder ein Formular umgangssprachlich dasselbe meinen, aber ebend etwas völlig anderes als ein Formular bei OOo)
Gruß
Stephan
Ich bin ja gerne bereit zuzugeben das ich mich irre, nur ich verstehe es nicht.
Du hast ein Formular mit mehreren Feldern. Ein Teil davon wird direkt aus der Datenbank übernommen, ein Teil der Werte per Makro eingetragen oder meinetwegen auch geändert. Der Nutzer sieht jetzt einen(!) Datensatz der Datenbank, alle Werte die hierbei direkt aud der Datenbank stammen stehen im Formular und in der Datenbank, Werte die per Makro eingetragen oder geändert wurden stehen zunächst temporär im Formular. Ändert oder ergänzt der Nutzer Werte stehen die ebenfalls im Formular. Solange der Nutzer den Datensatz nicht wechselt sind alle Werte vorhanden. Sobald der Nutzer den Datensatz wechselt werden [b]alle [/b]Temporärwerte in die Datenbank geschrieben. Versucht der Nutzer das Formular zu schließen kann es sein das die Werte eines Datensatzes nicht geschrieben werden, weil der Nutzer die Sicherheitsabfrage verneint. Nur im letzteren Fall mußt Du ein Makro starten was sicherstellt das die Werte geschrieben werden.
Alle anderen Werte werden zu jeder Zeit automatisch in der Datenbank geändert oder ergänzt, vorausgesetzt das das Formular korrekt mit der Datenbank verknüpft ist und die Datenbank nicht schreibgeschützt ist. Ich sehe bei konkreter Verknüpfung nicht mal die Möglichkeit ein Schreiben der aktualisierten Werte bei Wechsel des Datensatzes zu verhindern, selbst wenn ich das wollte. Ich könnte nur wenn ich das will unmittelbar nach dem Schreiben gleich wieder löschen. (Ja klar ich kann mir einen Code ausdenken der zu Beginn des Wechsels des Datensatzes die Formularfelder löscht o.ä. bloß das wäre dann alles absichtlich.)
Ja und ich kann natürlich nicht sagen, wie Du Dein Formular erstellt hast. Ein 'normal' mittels Assitent erstelltest Formular wird sich IMHO immer so verhalten wie geschildert.
Also bitte erkläre mir das nochmal, ich verstehe es nicht.
Und ich habe das mit Fokuserhalt und Verlust nicht geprüft, bloß selbst wenn es nur bei Fokusverlust gehen sollte, wo ist das Problem? Die Anzahl der Elemente auf dem Formular ist endlich. Willst Du für ein Element das Ereignis Fokuserhalt auswerten und es geht nicht direkt werte einfach für alle Übrigen das Ereignis Fokusverlust aus. Denn wenn Du z.B. 10 Steuerelemente hast (Nr.1 bis Nr.10) und eines der Elemente von Nr.1 bis Nr.9 den Fokus verliert, muß zwangsläufig Nr.10 ihn gerade erhalten haben.
P.S.
Nur um sicher zu gehen: Wir reden über ein (Datenbank)formular im Sinne der OOo-Terminologie und nicht über einen Basic-Dialog. (dieses Mißverständnis gab es hier nämlich schon öfter weil bei MS Office eine Userforn eine Form oder ein Formular umgangssprachlich dasselbe meinen, aber ebend etwas völlig anderes als ein Formular bei OOo)
Gruß
Stephan