Formular schließen Makro

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Robs123
Beiträge: 20
Registriert: Mo 7. Aug 2017, 09:49

Formular schließen Makro

Beitrag von Robs123 » Mo 21. Aug 2017, 10:52

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

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

Re: Formular schließen Makro

Beitrag von RobertG » Mo 21. Aug 2017, 21:27

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

Theophilus
Beiträge: 92
Registriert: Di 27. Sep 2011, 12:30

Re: Formular schließen Makro

Beitrag von Theophilus » Do 28. Feb 2019, 20:31

gibt es eine Option, mit der das Formular ohne Nachfrage (wg. speichern) geschlossen wird?
Herzliche Grüße aus dem Hohen Norden!

LO 6.0.6.2 unter Xubuntu 18.04

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

Re: Formular schließen Makro

Beitrag von RobertG » Fr 1. Mär 2019, 20:32

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

Theophilus
Beiträge: 92
Registriert: Di 27. Sep 2011, 12:30

Re: Formular schließen Makro

Beitrag von Theophilus » Sa 2. Mär 2019, 20:21

hat nicht geklappt.
Aber das hat mich auf folgende Idee gebracht:

Code: Alles auswählen

objsubForm.IsModified = false
damit funzt es.
Danke!
Herzliche Grüße aus dem Hohen Norden!

LO 6.0.6.2 unter Xubuntu 18.04

Antworten