Seite 1 von 1

Automatisches Speichern verhindern

Verfasst: Mi, 12.09.2012 18:26
von juetho
Ich möchte in einem Formular (oder Unterformular) verhindern, dass Änderungen eines Datensatzes automatisch in die Datenbank-Tabelle übernommen werden, also weder beim Wechseln eines Datensatzes noch beim Verlassen des letzten Kontrollfeldes. Vielmehr soll das Speichern durch einen Button ausgelöst werden. (Zweck: Abschließende Eingabeprüfungen sollen gezielt durchgeführt werden, und zwar bei einem einzigen Ereignis - "Aktion ausführen" - und nicht von mehreren möglichen Stellen aus.) Genügt dafür die Einstellung Formular > Eigenschaften > Daten > Daten ändern, oder hat das unpassende Nebenwirkungen? Gruß Jürgen

Re: Automatisches Speichern verhindern

Verfasst: Mi, 12.09.2012 19:41
von RobertG
Hallo Jürgen,

wenn Du "Daten ändern" auf "Nein" schaltetst, dann kannst Du auch keine Eingaben machen.

Ich habe mir an anderer Stelle damit geholfen, dass ich auf die Navigationsmöglichkeiten von Base verzichtet habe, die Navigation stattdessen über ein Listenfeld erledigte und die Abspeicherung imm in einer temporären Tabelle gemacht habe. Den Inhalt habe ich anschließend für die weitere Eingabe auseinandergepflückt.

Gruß

Robert

Re: Automatisches Speichern verhindern

Verfasst: Di, 25.09.2012 18:48
von juetho
Hallo Robert, es funktioniert in der Tat nicht. Allerdings verzweifle ich aus einem anderen Grund: Wenn ich während der Eingabe eines neuen Datensatzes mit Alt-Tab in ein anderes Fenster wechsle, um Namen oder Anschriften-Teile per Copy&Paste zu holen, dann interpretiert OO das Zurückwechseln als Datensatzwechsel und will einen unvollständigen Datensatz speichern. Das führt zu Fehlern, weil verschiedene Felder mit Inhalt versehen werden müssen (NOT NULL). Beim dritten derartigen Versuch verabschiedet sich OO. Zum Glück ist die Wiederherstellung offensichtlich zuverlässig, sodass ich noch keinen Datenverlust erlitten habe; aber es ist doch äußerst lästig. Nun ja... Jürgen

Re: Automatisches Speichern verhindern

Verfasst: Fr, 26.10.2012 02:44
von mhonline
[quote="juetho"]Ich möchte in einem Formular (oder Unterformular) verhindern, dass Änderungen eines Datensatzes automatisch in die Datenbank-Tabelle übernommen werden, also weder beim Wechseln eines Datensatzes noch beim Verlassen des letzten Kontrollfeldes. Vielmehr soll das Speichern durch einen Button ausgelöst werden. (Zweck: Abschließende Eingabeprüfungen sollen gezielt durchgeführt werden, und zwar bei einem einzigen Ereignis - "Aktion ausführen" - und nicht von mehreren möglichen Stellen aus.) Genügt dafür die Einstellung [i]Formular > Eigenschaften > Daten > Daten ändern[/i], oder hat das unpassende Nebenwirkungen? Gruß Jürgen[/quote]

Moin Jürgen

Du stellst die Frage nach dem expliziten Commit, welches die Entwickler von OOO/LO leider nicht wollten,
in der zugrundeliegenden HSQL-DB wäre das lösbar.

Die Teil-Lösung:
Wenn Du im Formular ein Kontroll-Feld-selektierst und im Kontext-Menü bei den Formular-Eigenschaften auf den Reiter "DATEN" klickst, findest Du am Ende den Eintrag "Zyklus", den Du auf "Datensatz" oder auf "Seite" einstellen solltest. Das hilft ein bißchen, weil damit die Enter-Taste insoweit deaktiviert ist, als der Cursor nun von Feld zu Feld springt. Aber leider speichern alle Navigations-Tasten (zB TAB im letzen Feld) trotzdem. Immerhin besser als nichts.

m.