Hallo zusammen,
wie kann ich verhindern, das bei Änderung von Feldern bzw. Sprüngen zwischen SubFormularen die Datenänderungen automatisch in eine Tabelle gespeichert werden?
Ausgangslage:
Formular mit mehreren Unterformularen
Das MainFormular ist ohne Datenfelder, die geändert werden sollen.
Ein Unterformular hat als Datenbasis eine Abfrage,
die anderen Unterformulare haben als Datenbasis Tabellen.
MainFormular mit Abfrage
Unterformular mit gleicher Abfrage - Relationsdaten
Unterformular 1 mit Tabelle 1 - Objektdaten
Unterformular 2 mit Tabelle 2 - Adressdaten
Unterformular 3 für Listenfeld
Unterformular 4 für Ausgabe
Unterformular 5, 6 für zugeordnete Anzeige Tabellen
Wie auch immer: Andere Zuordnungen, z.B. mit Verlagerung von Feldern in MainFormular, bringen keine Lösung.
Fachlich soll ein neuer Datensatz angelegt werden, der als Schlüssel ein bestimmtes Format hat und bisher nicht vorhanden ist.
Zum Datensatzneuanlegen wird von einer bestimmten Datenkonstellation aus (Verknüpfung zwischen Abfrage, und Tabellen und Tabellen untereinander) das vorhandene Formular geleert und das Schlüsselfeld nach Vorgabe gefüllt.
Werden nun in den Feldern des Formular im nicht gespeicherten Datensatz Felder geändert und gegebenenfalls Felder in Unterformularen per Mausklick aktiviert, speichert die Datenbank automatisch den Feldinhalt im Datensatz, der vor dem Leeren der Felder im Formular angezeigt war.
Lege ich einen leeren Datensatz mit dem gefüllten Schlüssel als neuen Datensatz an (verknüpfte Tabellen zur vorher gepflegten Tabelle) und habe diesen Datensatz im Formular angezeigt,, wird beim Wechseln in EIngabe- bzw. Auswahlfelder seitens DB der Fehler ausgegeben, wenn das angesprochene Feld einem anderen Unterformular oder einer anderen Datenquelle zugeordnet ist, der Datensatz sei aufgrund leerer SQL-Eingabefelder nicht speicherbar sei.
DIESEN AUTOMATISCHEN SPEICHERMECHANISMUS WILL ICH NICHT NUTZEN!
Sondern nach Bestätigen durch den Anwender die geänderten Felder speichern.
Wer kann mir Tipps geben, wie ich diesen Speichermechanismus umgehen, ausbremsen oder auf den Mond schiessen kann?
Vielen Dank.
BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!
> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Base Automatisches Speichern bei Änderungen in Formularen verhindern
Re: Base Automatisches Speichern bei Änderungen in Formularen verhindern
Wenn Du das automatische Abspeichern verhindern willst, dann wirst Du bei einer Makrolösung nur an das Ereignis "Vor der Datensatzaktion" ran kommen. Da könntest Du eine Funktion einbauen, die auf jeden Fall False zurück gibt und die Speicherung unterbricht. Nur kannst Du dann nicht mehr aus dem Formular heraus abspeichern. Warum Du dann überhaupt dort Daten eingeben willst erschließt sich mir nicht.
Ich würde das Design der Formulars anpassen und nicht versuchen, einen Automatismus aus zu tricksen.
Ich würde das Design der Formulars anpassen und nicht versuchen, einen Automatismus aus zu tricksen.
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Base Automatisches Speichern bei Änderungen in Formularen verhindern
Hi Robert,
Danke für Deine Antwort. Das mit der Makrosteuerung werde ich mal probieren.
Das Problem ist, das ich bei neuangelegten Datensätzen, die nur teilweise in Tabellen gespeichert wurden, Fehlermeldungen bekomme, wenn der Anwender Daten in einem Formularteil eingibt, dann auf ein anderes Feld eines anderen Formularteils (SubForm) springt und die DB angibt, das sie keine Speicherung durchführen kann wg. Null-Primary Key (was zu diesem Zeitpunkt auch nicht sollte). Also, der Fehler wird ausgegeben beim Verlassen des Bereichs des Main- oder SubFormulars.
Ich werde mal weiter mit Abfragen probieren, die die PrimKeys beinhalten und Änderungen erlauben (war ein anderer Tipp von Dir).
Danke und Gruß, Tom
Danke für Deine Antwort. Das mit der Makrosteuerung werde ich mal probieren.
Das Problem ist, das ich bei neuangelegten Datensätzen, die nur teilweise in Tabellen gespeichert wurden, Fehlermeldungen bekomme, wenn der Anwender Daten in einem Formularteil eingibt, dann auf ein anderes Feld eines anderen Formularteils (SubForm) springt und die DB angibt, das sie keine Speicherung durchführen kann wg. Null-Primary Key (was zu diesem Zeitpunkt auch nicht sollte). Also, der Fehler wird ausgegeben beim Verlassen des Bereichs des Main- oder SubFormulars.
Ich werde mal weiter mit Abfragen probieren, die die PrimKeys beinhalten und Änderungen erlauben (war ein anderer Tipp von Dir).
Danke und Gruß, Tom
Re: Base Automatisches Speichern bei Änderungen in Formularen verhindern
Hi Robert,
das mit dem Ereignis "Vor der Datensatzaktion" und Rückgabe von False funktioniert sehr gut.
Vielen Dank.
Gruß Tom
das mit dem Ereignis "Vor der Datensatzaktion" und Rückgabe von False funktioniert sehr gut.
Vielen Dank.
Gruß Tom
An alle, die das LibreOffice-Forum nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.
❤️ Vielen lieben Dank für Ihre Unterstützung ❤️