Seite 1 von 1

Nacheinanderfolgende Ausführung zweier Makros

Verfasst: Mi 12. Jan 2022, 22:17
von RBOCK
Ich möchte gerne die beiden nachfolgenden Makros beim Start einer Base Datenbankdatei hintereinander ausführen lassen. Die Zuordnung erfolgt über Extras, Anpassen in der Formular-Ansicht der Datei zu dem Ereignis "Dokument öffnen".
Bis jetzt habe ich das Makro1 wie vorher beschrieben zugewiesen und das Makro2 analog beim Formular "Arbeitserfassung_ab_06_2021", damit es mit dem Öffnen des Formulares ausgeführt wird.

Sub Makro1
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
oController= ThisDatabaseDocument.CurrentController
If NOT ( oController.isConnected() ) Then oController.connect()
ThisDatabaseDocument.formdocuments.getbyname("Arbeitserfassung_ab_06_2021").open
End Sub

Sub Makro2
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
DIM oFrame AS OBJECT
DIM oWin AS OBJECT
oframe = Thiscomponent.currentcontroller.frame
owin = oframe.getContainerWindow()
oWin.IsMaximized = True
End sub

In einem anderen Beitrag "Formularfeld sichtbar schalten" (viewtopic.php?f=10&t=13264&p=27849&hili ... ros#p27845) wird die Verknüpfung über ein neues Makro vorgeschlagen:

SUB BeimLadenAusfuehren
NeuerDatensatz 'Startet das Makro NeuerDatensatz.
UnsichtbarFormularstart 'Startet das Makro UnsichtbarFormularstart.
END SUB

1) Ich habe es bei mir getestet, aber es wird nur das erste Makro ausgeführt.

Sub Makrosstarten
Makro1
Makro2
End Sub

2) Wenn ich es wie folgt versuche, bekomme ich einen BASIC-Laufzeitfehler (Test_Makro_kombi1.png).

Sub FormularArbeitserfassung_ab_06_2021oeffnenundmaximieren
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
DIM oFrame AS OBJECT
DIM oWin AS OBJECT
oDoc =ThisDatabaseDocument.formdocuments.getbyname("Arbeitserfassung_ab_06_2021").open
oframe = Thiscomponent.currentcontroller.frame
owin = oframe.getContainerWindow()
oWin.IsMaximized = True
End Sub
Test_Makro_kombi1.png
Test_Makro_kombi1.png (27.73 KiB) 1527 mal betrachtet
3) Wenn ich es wie folgt versuche, erhalte ich auch einen Basic-Laufzeitfehler (Test_Makro_kombi2.png) mit Objektvariable nicht belegt.

Sub FormularArbeitserfassung_ab_06_2021oeffnenundmaximieren
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
DIM oFrame AS OBJECT
DIM oWin AS OBJECT
oController= ThisDatabaseDocument.CurrentController
If NOT ( oController.isConnected() ) Then oController.connect()
ThisDatabaseDocument.formdocuments.getbyname("Arbeitserfassung_ab_06_2021").open
oframe = Thiscomponent.currentcontroller.frame
owin = oframe.getContainerWindow()
oWin.IsMaximized = True
End Sub
Test_Makro_kombi2.png
Test_Makro_kombi2.png (25.56 KiB) 1527 mal betrachtet
Vielen Dank Vorab.

Re: Nacheinanderfolgende Ausführung zweier Makros

Verfasst: Do 13. Jan 2022, 17:39
von RobertG
Versuche

Code: Alles auswählen

Sub FormularArbeitserfassung_ab_06_2021oeffnenundmaximieren
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
DIM oFrame AS OBJECT
DIM oWin AS OBJECT
oController= ThisDatabaseDocument.CurrentController
If NOT ( oController.isConnected() ) Then oController.connect()
oDoc = ThisDatabaseDocument.formdocuments.getbyname("Arbeitserfassung_ab_06_2021").open
oframe = oDoc.currentcontroller.frame
owin = oframe.getContainerWindow()
oWin.IsMaximized = True
End Sub
Das Hintereinander ablaufen von Makros müsste natürlich auch funktionieren. Nur ist das natürlich eine Frage, was denn in dem Moment, indem Du das Makro aufrufst, "ThisComponent" ist.

Gruß

Robert

Re: Nacheinanderfolgende Ausführung zweier Makros

Verfasst: Do 13. Jan 2022, 18:47
von RBOCK
Hallo Robert,

wiederum vielen Dank für die schnelle Hlife. Es läuft.

MfG
RBock