BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> 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

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
TomH
! Supporter - Spende !
Beiträge: 10
Registriert: Do 2. Jun 2022, 17:55

Base Automatisches Speichern bei Änderungen in Formularen verhindern

Beitrag von TomH » So 4. Sep 2022, 21:47

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.

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Base Automatisches Speichern bei Änderungen in Formularen verhindern

Beitrag von RobertG » Mo 5. Sep 2022, 07:47

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.
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

TomH
! Supporter - Spende !
Beiträge: 10
Registriert: Do 2. Jun 2022, 17:55

Re: Base Automatisches Speichern bei Änderungen in Formularen verhindern

Beitrag von TomH » Mo 5. Sep 2022, 09:18

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

TomH
! Supporter - Spende !
Beiträge: 10
Registriert: Do 2. Jun 2022, 17:55

Re: Base Automatisches Speichern bei Änderungen in Formularen verhindern

Beitrag von TomH » Mo 5. Sep 2022, 09:46

Hi Robert,

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 ❤️

Antworten