Seite 1 von 1

Formular schließen Makro

Verfasst: Mo 21. Aug 2017, 10:52
von Robs123
Liebe Mitstreiter,

ich versuche gerade, über ein Makro ein Formular zu speichern und zu schließen. Das Speichern klappt, das Schließen nicht, mit folgender Fehlermeldung:

Code: Alles auswählen

oDoc = thisComponent
oDoc.close(true)
BASIC-Laufzeitfehler.
Es ist eine Ausnahme aufgetreten
Type: com.sun.star.util.CloseVetoException
Message: To close an embedded document, close the document holder (document definition), not the document itself..
Ich vermute es liegt daran, dass ich das Formular schließen möchte und die Datenbank im Hintergrund natürlich weiterhin offen ist?!

Ich möchte also nur das aktuell bearbeitete Formular beendene, auch wenn ich Hintergrund noch andere Formulare offen sind. Gibt es diese möglichkeit oder muss ich per Hand immer das X drücken?

Vielen Dank und liebe Grüße,
Rob

Re: Formular schließen Makro

Verfasst: Mo 21. Aug 2017, 21:27
von RobertG
Hallo Rob,

korrekt, mit oDoc.close() versuchst Du das ganze Datenbankdokument zu schließen - das geht natürlich auch, nur ist vom Formular aus oDoc nicht "thisComponent".

Code: Alles auswählen

ThisDatabaseDocument.FormDocuments.getByName("Formulardokument").close
Damit schließt Du ein Formulardokument in der Datenbankdatei.

Gruß

Robert

Re: Formular schließen Makro

Verfasst: Fr 1. Mär 2019, 20:32
von RobertG
Hallo Theophilus,

wenn die Abfrage nicht kommen soll, dann müsstest Du Dich damit auseinandersetzen, was denn stattdessen passiert. So etwas könnte dann z.B. über

Code: Alles auswählen

oForm.CancelRowUpdates()
für jedes Hauptformular und Unterformular vermeiden, dass etwas abgespeichert wird.

Gruß

Robert