Danke dir, Robert, für deinen Vorschlag. Die empfohlene Variante mit der eingebauten Bedingung hatte ich auch schon ausprobiert, ohne Erfolg. Die Fehlermeldung erscheint, egal ob ich einen neuen oder einen bereits vorhandenen Namen eintrage.
Der eingetippte Name bleibt im Kombinationsfeld stehen. Drücke ich anschließend die Taste „Speichern“ (Aktion: Datensatz speichern), wird der Name problemlos abgespeichert oder, wenn der Name schon in der Tabelle steht, abgelehnt.
Wenn ich nach der Fehlermeldung in ein anderes Kombinationsfeld wechsle (= anderes Formular), wird der angezeigte Name automatisch abgespeichert oder abgelehnt, wie zuvor.
Irgendeine Einstellung verhindert die Ausführung des Befehls „insertRow“. Ohne diesen Befehl klappt das Makro, dann aber nur das Reload.
In den Eigenschaften ist „Aktion – Keine“ ausgewählt, das Makro hängt am Ereignis „Aktion ausführen“.
Ich habe auch versucht, über uno-Befehle ans Ziel zu kommen. Nur kann ich unter „Eigenschaften > Dokument/Webseite öffnen“ nicht mehrere Befehle in das Feld „URL“ eintragen.
Nun ja, ich kann auf jeden Fall mit dem Formular arbeiten.
❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Datenbank für Genealogie
Re: Datenbank für Genealogie
Mit welchem Ereignis hast Du denn das Makro verknüpft?
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: Datenbank für Genealogie
Deine Frage war die passende Antwort, Robert!
„Fokussieren bei Klick“ hatte ich auf „Nein“ gesetzt. Das Makro war gekoppelt an „Aktion ausführen“.
„Fokussieren bei Klick“ habe ich auf „Ja“ umgestellt, das Makro startet jetzt „Bei Fokuserhalt“ – und funktioniert!
„Umschalten“ steht auch auf „Ja“, dürfte aber nur optisch eine Rolle spielen.
Weil in diesen Feldern das Ändern oder Löschen von Daten nicht zulässig ist, benötige ich nicht die Bedingung „IF oForm.isNew …“, verwende sie aber trotzdem.
Tippt man einen bereits vorhandenen Namen ein, kommt die (korrekte) Fehlermeldung, dass der Eintrag gegen die Bedingung „UNIQUE“ verstößt. Klickt man die Fehlermeldung weg, öffnet sich die Seite mit den Makros ebenfalls mit einer Fehlermeldung. Aus dieser Schleife komme ich nur heraus durch Schließen der Datenbank ohne zu Speichern.
Den Befehl „… ELSE oForm.updateRow() …“ habe ich deshalb versuchsweise ersetzt durch
„… ELSE oForm.cancelRowUpdates“ oder
„… ELSE oForm.updateNull“.
Das hat nichts gebracht.
Im Normalfall trage ich in diese Felder nur Namen ein, die in den Listenfeldern noch nicht vorhanden sind. Doppeleinträge ergeben sich also nur aus Versehen.
„Fokussieren bei Klick“ hatte ich auf „Nein“ gesetzt. Das Makro war gekoppelt an „Aktion ausführen“.
„Fokussieren bei Klick“ habe ich auf „Ja“ umgestellt, das Makro startet jetzt „Bei Fokuserhalt“ – und funktioniert!
„Umschalten“ steht auch auf „Ja“, dürfte aber nur optisch eine Rolle spielen.
Weil in diesen Feldern das Ändern oder Löschen von Daten nicht zulässig ist, benötige ich nicht die Bedingung „IF oForm.isNew …“, verwende sie aber trotzdem.
Tippt man einen bereits vorhandenen Namen ein, kommt die (korrekte) Fehlermeldung, dass der Eintrag gegen die Bedingung „UNIQUE“ verstößt. Klickt man die Fehlermeldung weg, öffnet sich die Seite mit den Makros ebenfalls mit einer Fehlermeldung. Aus dieser Schleife komme ich nur heraus durch Schließen der Datenbank ohne zu Speichern.
Den Befehl „… ELSE oForm.updateRow() …“ habe ich deshalb versuchsweise ersetzt durch
„… ELSE oForm.cancelRowUpdates“ oder
„… ELSE oForm.updateNull“.
Das hat nichts gebracht.
Im Normalfall trage ich in diese Felder nur Namen ein, die in den Listenfeldern noch nicht vorhanden sind. Doppeleinträge ergeben sich also nur aus Versehen.
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.